Java 上的 FileNotFoundException
FileNotFoundException on Java
我正在尝试读取整数输入,例如
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 使用绝对路径。
您可以通过 运行 这段代码查看您的程序正在寻找 huhu.txt 的位置。
System.out.println("Working Directory = " +
System.getProperty("user.dir"));
看这段代码:
tall[i++] = scanner.nextInt();
System.out.print(tall[i]);
您读取的数组元素与您打印的不一样(您打印下一个,因为i++
增加了索引)。
这解释了你得到的所有 0。
我不清楚你是如何得到 FileNotFoundException
。
那是因为您打印了数组中尚未受影响的下一个元素
, 所以试试这个
while(scanner.hasNextInt())
{
tall[i] = scanner.nextInt();
System.out.println(tall[i]);
i++;
}
我正在尝试读取整数输入,例如
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 使用绝对路径。
您可以通过 运行 这段代码查看您的程序正在寻找 huhu.txt 的位置。
System.out.println("Working Directory = " +
System.getProperty("user.dir"));
看这段代码:
tall[i++] = scanner.nextInt();
System.out.print(tall[i]);
您读取的数组元素与您打印的不一样(您打印下一个,因为i++
增加了索引)。
这解释了你得到的所有 0。
我不清楚你是如何得到 FileNotFoundException
。
那是因为您打印了数组中尚未受影响的下一个元素 , 所以试试这个
while(scanner.hasNextInt())
{
tall[i] = scanner.nextInt();
System.out.println(tall[i]);
i++;
}