鉴于我的项目结构如下, 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;
}
但它不起作用。知道为什么它不起作用吗?
答案 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"