我正在运行一个需要读取文本文件并将其保存为字符串的java应用程序,但我不断获得NoSuchFileException
。文本文件位于src旁边的一个名为assets。
static String readFile(String path, Charset encoding) throws IOException {
byte[] encoded = Files.readAllBytes(Paths.get(path));
return new String(encoded, encoding);
}
这是读取我在此处找到的文件的方法。
try {
string = readFile("test.txt",Charset.defaultCharset());
} catch (IOException e) {
e.printStackTrace();
}
我尝试过“/assets/test.txt”和其他变种也无济于事。
答案 0 :(得分:0)
只需使用(不开始斜线):
try {
string = readFile("assets/test.txt",Charset.defaultCharset());
} catch (IOException e) {
e.printStackTrace();
}
获取相对于项目根目录的路径。
答案 1 :(得分:0)
如果从Eclipse中执行Java程序,典型的运行配置会将项目的基本目录作为Java进程的当前工作目录。因此,您需要使用基于该目录的相对路径(assets/test.txt
或src/main/assets/test.txt
或类似的)。您还可以使用完整路径(例如:/somewhere/workspace/project/assets/test.txt
)。
您始终可以使用System.out.println("CWD=" + new File(".").getAbsolutePath());
来查询Java运行时认为它已启动的目录。