Java 逐行读取文件中的空指针异常

Java 逐行读取文件中的空指针异常,java,io,nullpointerexception,Java,Io,Nullpointerexception,我正在逐行读取到程序中的txt文件。我的目标是显示此文本,不使用标点符号,并且全部使用小写字母。到目前为止,我能够用下面的代码以这种方式显示此文本,但是我一直在“while”表达式的最后一行收到一个null指针异常的运行时错误,我不确定我的错误在哪里。我相信问题可能出在我的布尔while表达式中,我尝试更改输入!=空至读卡器.readLine()!=空,没有成功。谢谢大家! import java.io.FileReader; import java.io.BufferedReader; imp

我正在逐行读取到程序中的txt文件。我的目标是显示此文本,不使用标点符号,并且全部使用小写字母。到目前为止,我能够用下面的代码以这种方式显示此文本,但是我一直在“while”表达式的最后一行收到一个null指针异常的运行时错误,我不确定我的错误在哪里。我相信问题可能出在我的布尔while表达式中,我尝试更改输入
!=空
读卡器.readLine()!=空
,没有成功。谢谢大家!

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。

的可能重复项