当前位置: 首页 > 面试题库 >

线路的非阻塞(NIO)读取

路裕
2023-03-14
问题内容

我需要使用逐行读取文件java.nio,但是nio没有像一次readline()读取一个完整行的方法。有什么解决方案?


问题答案:

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

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



 类似资料:
  • 主要内容:1 非阻塞服务器-GitHub仓库,2 无阻塞IO管道,3 非阻塞与阻塞IO管道,4 基本的无阻塞IO管道设计,5 读取部分消息,6 存储部分消息,7 编写部分消息,8 总结,9 服务器线程模型即使你了解了Java NIO非阻塞功能如何工作(Selector,Channel, Buffer等),设计一个无阻塞服务器仍然很难。与阻塞IO相比,非阻塞IO包含多个挑战。这份非阻塞服务器教程将讨论非阻塞服务器的主要挑战,并为它们描述一些潜在的解决方案。 本教程中描述的思想是围绕Java NIO

  • 问题内容: 我有这段代码可以在Linux中从Serial读取,但是我不知道在读取SerialPort时阻塞和非阻塞之间有什么区别,在哪种情况下哪个更好? 问题答案: 您提到的代码是IMO编码和注释不当的代码。该代码不符合POSIX的可移植性惯例,如正确设置终端模式和POSIX操作系统的串行编程指南中所述。该代码没有提到它使用非规范(也称为原始)模式,并且重用了“阻塞”和“非阻塞”术语来描述 VMI

  • 问题内容: Java NIO提供并可以将其设置为非阻塞模式(异步)。大多数操作返回的值对应于成功或该操作尚未完成。是什么目的,并随后,除了回调的功能? 问题答案: 可以设置为非阻塞模式(异步) 就在那里,您有误解。非阻塞模式 不同于 异步模式。 非阻塞操作要么传输数据,要么不传输数据。无论哪种情况,都没有阻塞,并且返回操作完成。此模式受 和支持 异步操作在您调用该方法时开始,并在后台继续,其结果可

  • 问题内容: Java中是否有非阻塞文件读取API?如果不是,在C ++中构建一个并通过JNI从Java应用程序中调用它是否明智? 问题答案: 不,不扩展。 可能是因为并非所有的操作系​​统都支持它。 Windows确实如此,从理论上讲,您可以编写Windows特定的C ++库,并通过JNI进行调用,但是将其与集成是很多工作。 我宁愿有一个工作线程将文件内容复制到管道中,并在管道的另一端进行非阻塞读

  • 问题内容: 我正在尝试在Go中创建服务器和客户端,我已经设法与服务器和客户端进行通信。但是我的问题是,在golang中读取的TCP是非阻塞的。我想知道的是,golang中的读取是否有可能像C中的读取一样被阻塞。谢谢 编辑: 这是服务器的源代码: 和我的客户: 问题答案: 可以返回部分数据。从该文档,“如果某些数据是可用的,但不是LEN(P)个字节,读取常规返回什么是可用的,而不是等待更多。” 无论

  • 非阻塞 IO 仅对在 Servlet 和 Filter(2.3.3.3节定义的,“异步处理”)中的异步请求处理和升级处理(2.3.3.5节定义的,“升级处理”)有效。否则,当调用 ServletInputStream.setReadListener 或ServletOutputStream.setWriteListener 方法时将抛出IllegalStateException。为了支持在 Ser