【问题标题】:FileNotFoundException - Reading a text file in javaFileNotFoundException - 在 java 中读取文本文件
【发布时间】:2014-05-09 17:44:47
【问题描述】:

我从这段代码中得到一个文件未找到异常,即使它在 try catch 语句中并且我不确定出了什么问题,该文件在项目文件夹中并且被称为“someFile.txt”。这是主要方法:

public static void main(String[] args) {
    if (args.length == 0) {
        System.out.println("no arguments given");
        return;
    }
    double FRE = sortFile(args[0]);
    System.out.println("Readability of file " + args[0] + "= " + FRE);

}

而这是发生异常的sortFile方法:

public static double sortFile(String FileName) {
    int nWords = 0;
    int nSyllables = 0;
    int nSentences = 0;
    File text = new File(FileName);
    try {
        Scanner sc = new Scanner(text);
        while (sc.hasNext()) {
            contents.add(sc.next());
            ++nWords;
        }
        sc.close();
        for (String e : contents) {
            getNumSyllables(e);
        }

    } catch (FileNotFoundException e) {
        System.out.println("The file" + FileName + "could not be opened.");
        e.printStackTrace();
    }
    double FRE = getFRE(nWords, nSyllables, nSentences);
    return FRE;
}

感谢您的帮助:)

【问题讨论】:

  • 能否请您显示项目层次结构,它比这段代码更有帮助。
  • 只是一个建议。始终在 catch 语句之后的 finally 块中关闭您的流等。这样它就会100%肯定被关闭。您还尝试在 try 之上创建文件。放置文件文本=新文件(文件名);在尝试中。
  • 说真的,即使它在 try 和 catch 块中,你也会得到一个 filenotfoundexception,但是在这之后没有代码打印一些东西并且你打印了 stackstrace,所以你无法知道异常是否被捕获或不是……
  • @kai 他可以调试/查看他的日志以查看是否捕获了异常。但问题可能是在您使用的位置找不到该文件。
  • 如果你使用 Java 7 使用 java.nio.file;至少你会有的例外是有意义的

标签: java filenotfoundexception


【解决方案1】:

好吧,该文件在该位置不存在。尝试添加

System.out.println(text.getAbsolutePath())

查看文件的预期位置。请注意,当您提供相对路径(例如some/path/filename.ext)时,这是相对于工作目录的。工作目录是你的java程序启动的文件夹。

如果您使用的是 IDE(例如 Eclipse、IntelliJ、Netbeans),您可以在运行配置中定义工作目录。

见:

【讨论】:

    【解决方案2】:

    我从这段代码中得到一个文件未找到异常,即使它是 在 try catch 语句中

    try-catch 不会阻止 Exception 被抛出。它只是在抛出 Exception 时执行 catch 块中的代码,而您只是在 catch 块中打印堆栈跟踪,这通常是在未捕获的异常上打印的内容。

    要解决您的实际问题,首先尝试将完整路径传递给文件,验证它是否有效,然后使用 Tim 的答案来调试您的绝对路径。

    【讨论】:

      【解决方案3】:

      尝试使用绝对路径启动您的程序。

      java yourclassname absolutepath_to_someFile.txt
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-05
        • 1970-01-01
        • 2016-02-29
        • 1970-01-01
        • 1970-01-01
        • 2013-02-17
        相关资源
        最近更新 更多