找不到文本文件,无法弄清楚它的路径

时间:2014-08-24 00:33:52

标签: java eclipse file nosuchfileexception

我正在运行一个需要读取文本文件并将其保存为字符串的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”和其他变种也无济于事。

2 个答案:

答案 0 :(得分:0)

只需使用(不开始斜线):

try {
  string = readFile("assets/test.txt",Charset.defaultCharset());
} catch (IOException e) {
  e.printStackTrace();
}

获取相对于项目根目录的路径。

答案 1 :(得分:0)

如果从Eclipse中执行Java程序,典型的运行配置会将项目的基本目录作为Java进程的当前工作目录。因此,您需要使用基于该目录的相对路径(assets/test.txtsrc/main/assets/test.txt或类似的)。您还可以使用完整路径(例如:/somewhere/workspace/project/assets/test.txt)。

您始终可以使用System.out.println("CWD=" + new File(".").getAbsolutePath());来查询Java运行时认为它已启动的目录。