2

Scanner Class找不到我使用NetBeansIDE的文件,test.txt在文件夹路径:D:\netbeans project works\ReadFile\src\readfile\test.txt

在同一文件夹中存在 readfile.java。代码如下。它生成找不到文件。

package readfile;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;


public class ReadFile {

    public static void main(String[] args) throws IOException , FileNotFoundException 
    {  
        Scanner scanner = new Scanner(new File("test.txt"));  

        while (scanner.hasNextLine())  
            System.out.println(scanner.nextLine());  
    }  
}

输出:-

run:
Exception in thread "main" java.io.FileNotFoundException: test.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:106)
    at java.util.Scanner.<init>(Scanner.java:636)
    at readfile.ReadFile.main(ReadFile.java:14)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
4

6 回答 6

6

Scanner在创建类之前添加以下内容:

System.out.println(new File("test.txt").getAbsolutePath());

它将向您展示 JVM 期望在哪里找到该文件以及它是否也是您期望的文件夹。

还要检查文件权限。但很可能这是默认 JVM 目录的问题。

于 2012-07-08T17:14:24.533 回答
3

啊,您没有指定完整的文件路径。当文件路径被缩写(即test.txt)时,java 假定该文件与运行它的源代码位于同一目录中。所以要么指定完整路径,要么移动文件。

于 2012-07-08T17:14:43.213 回答
1

移动到ReadFile目录,即项目的根目录

于 2012-07-08T17:13:58.753 回答
0

test.txt文件应位于该文件所在的文件夹中readfile.class

于 2012-07-08T17:14:16.663 回答
0

我知道这个问题很久以前就已经报告过了,但是,我遇到了类似的障碍,然后提出的解决方案不起作用,因此我决定发布另一个答案。

尝试使用try... catch子句。例如,只有这样我的代码才被 NetBeans 编译。

于 2020-02-06T16:20:58.940 回答
-1

对我有用的是从文件名中删除 .txt 扩展名并使用 . 指定当前目录(示例如下)。

Scanner scanner = new Scanner(new File("./test"));
于 2016-03-02T22:27:07.700 回答