如何读取项目文件夹下的资源,但不能读取源文件夹中的资源

时间:2016-03-14 03:15:09

标签: java file

鉴于我的项目结构如下, My Project structure

如何访问findLoginDetails.txt? 目前,我有

public static String getQueryFromExternalFile(final String path) {
String path1 = "src/main/resources/sql/C0001/findLoginDetails.txt";
String query = "";
try {
  BufferedReader br = new BufferedReader(new FileReader(path1));
  StringBuilder sb = new StringBuilder();
  String line = br.readLine();
  while (line != null) {
    sb.append(line);
    sb.append(System.lineSeparator());
    line = br.readLine();
  }

  query = sb.toString();
  br.close();
} catch (Throwable e) {
  query = "";
  e.printStackTrace();
}
return query;

}

但它不起作用。知道为什么它不起作用吗?

2 个答案:

答案 0 :(得分:2)

最好从类路径中读取它而不是项目根文件夹。我假设resources文件夹在您的构建路径上。这将为您提供所需的便携性。

使用

BufferedReader r = new BufferedReader(
   new InputStreamReader(MyClass.class.getClassLoader().getResourceAsStream(
     "sql/C0001/findLoginDetails")));

Where' MyClass'是你班级的名字。

有关更好的理解,请参阅How to really read text file from classpath in Java

答案 1 :(得分:0)

你尝试过绝对路径吗?

如果在Windows中尝试将" D:\ path \放到\ file"

相关问题