我对编程很新,我想学习如何从文件中读取数据。我观看了这段视频,并试图将这个想法复制到我自己的目的。 https://www.youtube.com/watch?v=3RNYUKxAgmw
每当我尝试运行main时,它会显示Error Line 22 - NullPointerException。我有一个带有数字的文本文件,我检查了名称是否匹配。我根本不明白为什么它说我的文件是空的。
package uge4;
import java.util.*;
import java.io.*;
public class ReadFile {
private Scanner x;
public void openFile () {
try {
x = new Scanner (new File("gradeconverter.txt"));
} catch(FileNotFoundException e){
System.out.println("File not found.");
}
}
public void readFile() {
Scanner input = new Scanner(System.in);
System.out.print("Insert old grade ");
int grade = input.nextInt();
input.close();
// line 22
while(x.hasNextInt()) {
int a = x.nextInt();
int b = x.nextInt();
if ( a == grade) {
System.out.println("Your new grade is: "+b);
}
}
}
public void closeFile() {
x.close();
}
}
答案 0 :(得分:0)
我想这是因为你曾经指定过文件的路径
如果您正在使用pc / latop硬盘中的文件,请提供完整的路径
x = new Scanner (new File("C://newfolder//gradeconverter.txt"));// just an example, add the actual path of you files location
答案 1 :(得分:0)
在第一次int a = x.nextInt()
调用另一个int b = x.nextInt();
后,可能会发生x
扫描程序没有更多要返回的数据。您需要在每次调用x.hasNextInt()
方法之前检查x.nextInt()
。
答案 2 :(得分:0)
你能简单地使用java 8"方式"
Files.lines(Paths.get(FILE_PATH)).forEach(System.out::print);
PS:您忘记打开Scanner
- > X