1

我使用 LineNumberReader 读取文本文件,当调用 setLineNumber 和 getLinenumber 时它打印 == 0 但是当再次调用 readLine ์Nit 事情发生了我该如何修复它这是我的代码

    BufferedWriter writer = new BufferedWriter(new FileWriter("text.txt"));
    writer.write("This is a line1\n" +
            "This is a line2\n" +
            "This is a line3");
    writer.newLine();
    writer.close();
    File myFile = new File("text.txt");
    FileReader fileReader = new FileReader(myFile);
    LineNumberReader reader = new LineNumberReader(fileReader);

    // Read from the FileReader.
    String lineRead = "";
    while ((lineRead = reader.readLine()) != null) {
        System.out.println(lineRead);
    }

    // Determine the number of lines that were read.
    System.out.println("Total lines read: " +
            reader.getLineNumber());

    // Reset the number of lines read.
    reader.setLineNumber(0);
    System.out.println("Total lines read after reset: " +
            reader.getLineNumber());

    String lineRead2 = "";
    while ((lineRead2 = reader.readLine()) != null) {
        System.out.println(lineRead2);
    }
    System.out.println("End");
    // Close the LineNumberReader and FileReader.
    fileReader.close();
    reader.close();

感谢

4

1 回答 1

1

您只是设置LineNumberReader的行号计数器,而不是基础流中的位置。请参阅Java 的 LineNumberReader 类的文档。

您已经处理了您的流,因此后续调用readLine()返回 null。

如果您想重新读取流,您将不得不调用fileReader.reset(), 或reader.reset(),这将导致您LineNumberReader调用 reset 为您的FileReader.

于 2012-06-20T07:07:28.917 回答