文件流字节[]与字符[]的io Java性能
我正在编写一个程序,读取一个文件(使用自定义缓冲区,8KB),然后在该缓冲区中找到一个关键字。因为Java提供了两种类型的流:字符流和;字节,我使用byte[]
和char[]
作为缓冲实现了这一点
我只是想知道,哪一个对性能来说更快更好,因为char
是2byte
,当使用Reader
读取char[]
时,Reader
将执行从byte
到char
的转换,我认为这可能会比只使用byte[]
更慢
你可以在下面搜索框中键入要查询的问题!
我正在编写一个程序,读取一个文件(使用自定义缓冲区,8KB),然后在该缓冲区中找到一个关键字。因为Java提供了两种类型的流:字符流和;字节,我使用byte[]
和char[]
作为缓冲实现了这一点
我只是想知道,哪一个对性能来说更快更好,因为char
是2byte
,当使用Reader
读取char[]
时,Reader
将执行从byte
到char
的转换,我认为这可能会比只使用byte[]
更慢
# 1 楼答案
如果读取的是二进制文件,请使用字节数组
如果它是一个文本文件,并且以后要使用字符串之类的内容,那么应该使用char数组
# 2 楼答案
这个堆栈溢出问题file-streaming-in-java讨论了java中高效的流文件
我特别喜欢this reference article
在大文件上,只使用字节就可以很快获得速度优势,因此,如果可以通过字节解码模式,那么肯定可以获得一些宝贵的周期
如果你的文件很小,或者你没有那么多,也许不值得麻烦