Java 使用BufferedReader和FileReader读取.txt文件

Java 使用BufferedReader和FileReader读取.txt文件,java,bufferedreader,Java,Bufferedreader,我使用BufferedReader和FileReader读取一个文件,但每次我读取它时,它只显示找不到名称。提前谢谢 BufferedReader ifile = new BufferedReader (new FileReader ("data.txt")); String N; while(true) { N=ifile.readLine(); if (N == null){ System.out.print("

我使用BufferedReader和FileReader读取一个文件,但每次我读取它时,它只显示找不到名称。提前谢谢

BufferedReader ifile = new BufferedReader (new FileReader ("data.txt"));
    String N;
    while(true)
    {
        N=ifile.readLine();
        if (N == null){
            System.out.print("\fNo name found\n");
            break;
        }
        number = Integer.parseInt(ifile.readLine());
        house = ifile.readLine();
        form = ifile.readLine();
        dob = ifile.readLine();
        System.out.println("Name: " + N + "\nNumber: " + number + "\nHouse: " + house + "\nForm: " + form + "\nDate of Birth: " + dob);
    }
    ifile.close();

答案可能已经在另一个主题中给出,如:

所以它可能是重复的

但是,当您通过BufferedReader读取文件时,建议您这样做

        FileReader filereader = new FileReader("data.txt");
        BufferedReader ifile = new BufferedReader(filereader); 
        String N;
        ArrayList<String> file_contents= new ArrayList<String>();
        //List will now contain the whole txt

        try {
            while((N = input.readLine()) != null) {
                file_contents.add(N);
            }
            ifile.close();
        }
        catch(IOException e){
            e.printStackTrace();
        }
FileReader FileReader=newfilereader(“data.txt”);
BufferedReader ifile=新的BufferedReader(文件阅读器);
字符串N;
ArrayList文件_contents=新的ArrayList();
//列表现在将包含整个文本
试一试{
而((N=input.readLine())!=null){
文件内容。添加(N);
}
ifile.close();
}
捕获(IOE异常){
e、 printStackTrace();
}
然后打破列表的内容,得到你想要的

使用try/catch块可以避免不知道如何处理无法读取文件“data.txt”的错误

您的方法(while(true))不会在任何变量中传递名称,因此可以将其打印出来,并且只检查data.txt文件的第一行是否为空,如果该条件为真,则不会对其余行执行任何操作

除上述检查外,请检查问题的根源是否在txt文件中。
例如,如果它的结构符合您的要求。

您试图读取一个空文件。解决方案:不要这样做。如果您使用的是Java8,那么您可能需要查看
streams
,这是一件好事。看一看,欢迎光临。也接受这个帖子作为最好的答案,这样其他有类似问题的人也能看到它。