java - LineNumberReader setLineNumber 不起作用

标签 java android

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

感谢

最佳答案

您只是设置了 LineNumberReader 的行号计数器,而不是底层流中的位置。请参阅 Java's LineNumberReader class 的文档.

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

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

关于java - LineNumberReader setLineNumber 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11114429/

相关文章:

java - Eclipse 找不到 Oracle VM 模拟器

Android JUnit 测试...如何预期异常

android - 本地存储 API 在 NativeScript WebView 中不起作用

java - 我使用的是struts1,关于action名称

Java - 俄语编码

java - 指定 jre 绝对路径时 Oracle setup.exe 空间敏感度

java - 如果应用程序有多个登录(例如 Facebook、Google 和 Web 服务登录),如何在 Android 中管理 session

android - Admob interstitial 在没有项目更改的情况下停止工作

java - 在 Android 上加载数据时显示旋转轮对话框

java - 具有一组有限键且每个键仅接受一种类型的值的 Hashmap?