【问题标题】:My method can't find files in directory我的方法在目录中找不到文件
【发布时间】:2012-02-15 17:21:42
【问题描述】:
public class Cww {
static List<String> readFile(String filename) {
    List<String> records = new ArrayList<String>();
    try {
        BufferedReader reader = new BufferedReader(new FileReader(filename));
        String line;
        while((line = reader.readLine()) != null)
        {
            records.add(line);
        }
        reader.close();
        return records;
    } catch(Exception e) {
        System.out.println(e);
        return null;
    }
}

和我的主要:

readFile("DirList.java");

    File file = new File("DirList.java");
    System.out.println(file.getCanonicalPath());

// CLASSPATH: .;..;J:\Programowanie\eclipse workspace\tij;C:\Program Files\Java\jre7\lib\ext\QTJava.zip

output: java.io.FileNotFoundException: DirList.java (Nie można odnaleźć określonego pliku)
J:\Programowanie\eclipse workspace\Rozdzial 18 cwiczenia\DirList.java

file.getCanonicalPath() 显示 jvm 搜索我的文件的实际位置,但我的 fileRead 方法仍然给我错误,

我是否需要在我的类路径中包含每个项目文件夹才能从中读取文件?

提前致谢

【问题讨论】:

  • classpath 仅用于告诉 Java 虚拟机或编译器在哪里查找用户定义的类和包。它与您的文件无关。将文件添加到您的工作区或提供文件的绝对路径。
  • 这些文件是应用程序资源(帮助 HTML、按钮图标等)吗?

标签: java io


【解决方案1】:

File 构造函数参数是绝对或相对文件名。它不会使用类路径,文件名——如果不是绝对的——总是相对于当前工作目录。

【讨论】:

    【解决方案2】:

    FileReader(filename) 将在执行您的 java 代码的目录(相对路径)中打开一个“DirList.java”。它与 CLASSPATH 没有任何关系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多