【问题标题】:FileNotFoundException on Java [duplicate]Java 上的 FileNotFoundException [重复]
【发布时间】:2018-10-25 13:57:04
【问题描述】:

我正在尝试读取整数的输入,例如

17
100
19
18

在 .txt 文件上,但我总是收到 FileNotFoundException。它会输出结果

0000

如果我运行下面的代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

public class umm {

    public static void main(String[] args) throws FileNotFoundException  {
        // TODO Auto-generated method stub


        Scanner scanner = new Scanner(new File("huhu.txt"));
        int [] tall = new int [100];
        int i = 0;
        while(scanner.hasNextInt())
        {
             tall[i++] = scanner.nextInt();
             System.out.print(tall[i]);
        }

        scanner.close();
    }

}

如果我在 .txt 文件中添加整数,这样它将有 6 个这样的整数

17
100
19
18
2
5

它会输出

000000

这不是说文件存在并且可以访问吗?但是为什么老是说FileNotFound呢?

【问题讨论】:

  • 使用文件的完整路径而不仅仅是huhu.txt
  • 好吧。因为找不到文件。确保在正确的路径中找到文件。您可以在执行期间打印当前路径,例如System.out.println(Paths.get(".").toAbsolutePath());

标签: java eclipse filenotfoundexception


【解决方案1】:

看看这段代码:

 tall[i++] = scanner.nextInt();
 System.out.print(tall[i]);

你读取的数组元素和你打印的不一样(你打印下一个,因为i++增加了索引)。

这解释了你得到的所有 0。

我不清楚你是如何获得FileNotFoundException的。

【讨论】:

    【解决方案2】:

    使用 huhu.txt 的绝对路径。

    您可以通过运行此代码查看您的程序在哪里寻找 huhu.txt。

    System.out.println("Working Directory = " +
                  System.getProperty("user.dir"));
    

    【讨论】:

    • 我这样做并将该行更改为 Scanner scanner = new Scanner(new File("C:\\Users\\eleanor\\workspace\\something\\huhu.txt")) ;但它仍然给我 FileNotFoundException 虽然
    • 没关系,我明白了。谢谢!
    【解决方案3】:

    那是因为您打印了数组中尚未受影响的下一个元素 ,所以试试这个

     while(scanner.hasNextInt())
    {
            tall[i] = scanner.nextInt();
            System.out.println(tall[i]);
            i++;
    }
    

    【讨论】:

      猜你喜欢
      • 2018-03-12
      • 2016-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多