我目前正在做一个测试项目,以了解如何读/写文本文件。这是我的代码:
package testings;
import java.util.Scanner;
import java.io.*;
public class Writing_Reading_files {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
File testFile = new File("testFile.dat");
String test, sName;
try{
PrintWriter print = new PrintWriter(new BufferedWriter(new FileWriter(testFile)));
test = in.nextLine();
print.println(test);
print.close();
}catch(IOException e) {
System.out.println("IO exception");
System.exit(0);
}
try {
BufferedReader readerName = new BufferedReader(new FileReader(testFile));
while(readerName != null) {
sName = readerName.readLine();
System.out.println(sName);
}
readerName.close();
} catch(FileNotFoundException e) {
System.out.println("FileNotFound");
System.exit(0);
} catch(IOException e) {
System.out.println("IO exception");
System.exit(0);
}
}
}
while循环导致吐出我放入的行然后为无限循环的空值如果我尝试While(readerName.readLine!= null)它停止无限循环但只输出null并且我不知道从那里开始,我已经尝试过关注youtube教程,但他的代码与我的代码相同,所以我不确定为什么我的null会不断重复。提前感谢您的帮助。
答案 0 :(得分:3)
为什么readerName
会成为null
?也许您的意思是String
返回的readLine
是null
?
考虑
BufferedReader readerName = new BufferedReader(new FileReader(testFile));
String sName = readerName.readLine();
while(sName != null) {
System.out.println(sName);
sName = readerName.readLine();
}
打开文件时也请考虑使用try-with-resources
。