txt 文件,我正在逐行读入我的程序。我的目标是显示此文本,不带标点符号且全部小写。到目前为止,我可以使用下面的代码以这种方式显示此文本,但是我在“while”表达式的最后一行不断收到空指针异常的运行时错误,并且我不确定我的错误在哪里。我相信问题可能出在我的 boolean while 表达式中,我尝试将输入 != null
更改为 reader.readLine() != null
但没有成功。谢谢!
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
public class BinaryTree {
public static void main(String[] args) {
String inputFile = "pg345.txt";
FileReader fileReader = null;
try {
fileReader = new FileReader(inputFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
BufferedReader reader = new BufferedReader(fileReader);
String input;
try {
input = reader.readLine().toLowerCase().replaceAll("[^a-zA-Z ]", "").toLowerCase();
System.out.println(input);
while (input != null) {
input = reader.readLine().toLowerCase().replaceAll("[^a-zA-Z ]", "").toLowerCase();
System.out.println(input);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
最佳答案
你的罪魁祸首是
reader.readLine().toLowerCase().replaceAll("[^a-zA-Z ]", "").toLowerCase()
reader.readLine().toLowerCase().replaceAll("[^a-zA-Z ]", "").toLowerCase();
这里是调用
reader.readLine()
如果文件中没有更多行,可能会返回 null。
关于java - 空指针异常逐行读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27238244/