看具体的应用场景吧。主要是区别是一个是异步IO(NIO),一个是同步IO(传统IO)。 至于是流方式比较快还是块方式比较快,这个没有测试过,普遍的理论都认为是块方式比较快。 在读取文件方面,小文件用传统IO,大文件用NIO。在处理网络连接方面,优先选择NIO。
[quote=引用 6 楼 skgary 的回复:]显然,一次中断不会只读一个字。
[quote=引用 2 楼 skgary 的回复:] [quote=引用 楼主 cumtwyc 的回复:] java IO采用数组的方式读写与java nio采用缓冲区的方式读写哪个效率更高呢?
显然,一次中断不会只读一个字。
「一般来说」的说法,是因为现代操作系统大多都提供DMA和通道方式去读写块式设备,但是不排除某些操作系统不支持,或者硬件不支持。而且Java也只是说尽可能贴近操作系统的实现去做NIO,它也不保证。所以我使用了「一般来说」这个用词。 还有,不要动不动就让人「回炉学习」,你至少得贴一个说得过去的理由吧。 实际上这部分,你在转移话题。就题主给的问题来说,NIO确实比IO有优势,尤其是处理大块数据的时候。
[quote=引用 3 楼 Foxir 的回复:] [quote=引用 2 楼 skgary 的回复:] [quote=引用 楼主 cumtwyc 的回复:] java IO采用数组的方式读写与java nio采用缓冲区的方式读写哪个效率更高呢?
[quote=引用 楼主 cumtwyc 的回复:] java IO采用数组的方式读写与java nio采用缓冲区的方式读写哪个效率更高呢?
java IO采用数组的方式读写与java nio采用缓冲区的方式读写哪个效率更高呢?
62,635
社区成员
307,269
社区内容
加载中
试试用AI创作助手写篇文章吧