从文件中读取文本时出现问题-FileNotFoundException

时间:2019-07-18 07:30:33

标签: java netbeans

我在笔记本上写了一个示例文本。然后我通过将其命名为TEST将文件保存在桌面上。当我尝试读取其内容时,不幸的是,在以下代码中,我收到消息:“无法打开文件”。 我该怎么做才能从测试文件中读取文本?

这是我的代码:

 public static void main(String[] args) {

        int i;
        FileInputStream fin;

        //Checks whether the file name was specified
        if(args.length !=1) {
            System.out.println("Usage: ShowFile TEST.TXT");
            return;
        }

        //Try open
        try {
            fin = new FileInputStream(args[0]);

        } catch(FileNotFoundException exc) {

            System.out.println("The file can not be opened!");
            return;
        }

        //At this stage, the file is open and ready to read, the following code reads the characters to reach the end of the file
        try {
            do {
                i = fin.read();
                if(i != -1) System.out.println((char)i);

            } while(i != -1);

        } catch (IOException exc) {
            System.out.println("Error reading the file");
        }

        //Close file
        try {
            fin.close();

        } catch(IOException exc) {
            System.out.println("Error close file!");
        }     

    }

我在命令行上写道: TEST.TXT

enter image description here

3 个答案:

答案 0 :(得分:2)

当然,您会得到一个错误。 因为默认情况下FileInputStream()会检查当前目录中的文件,即 在您的Java源文件所在的目录中。并且已经将TEST.TXT保存在桌面上。

因此,打开您位于Desktop文件夹中的文件。只需提供文件到FileInputStream的绝对路径即可。

例如,如果文件存储在C:\ Users \ user \ Desktop \ TEST.txt

然后

file = new FileInputStream(“ C:\ Users \ user \ Desktop \ TEST.txt”);

谢谢,祝您编码愉快!!

答案 1 :(得分:1)

尝试一下

BufferedReader br = new BufferedReader(new FileReader(new File("TEST")));
Sytem.out.println(br.readLine());

答案 2 :(得分:1)

那是因为没有给出完整的路径,并且工作目录被当作起始目录。该路径在System.getProperty("home.dir")中。

Path path = Paths.get("TEST.txt");
System.out.println("Full path: " + path.toAbsolutePath());

您可以在台式机上使用

 System.getProperty("home.user") + "/Desktop/" + args[0]