java nio逐行读取

Aas*_*ain 12 java nio file

我需要使用java nio逐行读取文件

必须读取第一行,并且必须进行一些处理

但是nio没有像readline()这样的方法来读取一行

请提供示例代码

Dan*_*aun 12

我知道你们不喜欢限制,但是如果一个人要求无法访问IO包或者由于某种原因不允许导入它,那么最佳答案是没有用的...

完全免IO的两种方法:

  1. java.nio.file.Files.lines ,返回一行行,它是.util包的一部分,而不是像bufferedReader那样的.io包.

  2. java.nio.file.Files.readAllLines ,返回可迭代的行集合.继续使用iterator或for each提取单行.

干杯

  • “如果一个询问者无法访问IO软件包”是一种完全虚构的约束。 (3认同)
  • @EJP学院的练习有时会产生奇怪的约束. (2认同)

use*_*421 5

为什么?NIO不支持阅读线.你可以每秒阅读数百万行,BufferedReader.readLine().我建议这就足够了.


Edw*_*uck 0

NIO 通常用于直接内存访问或块介导的批量数据传输。它确实做其他事情,但其他功能更多地与阻塞和非阻塞数据访问有关。

因此,您可能希望使用 NIO 快速(或以非阻塞方式)获取数据;但是,如果您想“逐行读取”,最好在 NIO 读入可用数据后进行行检测。这可以通过在 NIO 刚刚读取的缓冲区上放置一个“行读取”外观来轻松实现。