使用 BufferedReader 和 FileReader 读取 .txt 文件

Reading a .txt file using BufferedReader and FileReader

我使用 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();
        }

然后分解列表的内容以获得你想要的。

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

你的做法 (while(true)) 没有在任何变量中传递名字,所以它可以被打印出来,并且只检查你的 [=32= 的第一行] 文件是否为空,如果该条件为真,则不对剩余行执行任何操作。

除了上述检查你的问题的根源是否在txt文件中。 例如,如果它的结构是你想要的那样。