code: public static BufferedReader getBufferedReader(String source) throws FileNotFoundException {
      InputStream is = IOUtils.class.getResourceAsStream(source);
      if (is != null) {
        return new BufferedReader(new InputStreamReader(is));
      } else {
        File file;
        URL url = IOUtils.class.getResource(source);
        if (url != null) {
          file = new File(url.getPath());
        } else {
          file = new File(source);
        }
        return new BufferedReader(new FileReader(file));
      }
    }
docs: Create a BufferedReader from either a resource name or a file name. This method will first try to get an a resource
  stream (usually from a file in a jar), fall back to a resource on the classpath, and finally fall back to a file by
  absolute path.
  
  @param source
  the name of the source.
  @return a BufferedReader for the given source.
  @throws FileNotFoundException