标签:char pac val stream src 场景 http strong 对象
字节操作 |
byte类型操作,所有数表示为byte数组 |
读取输出要先转换成byte类型,才能进一步转换为字符串 |
不会运用到缓存 |
常用于处理二进制数据 |
|
字符操作 |
操作character类型,所有数表示为character数组 |
可以直接读取输出字符串 |
需要用到缓存 |
常用于处理文本数据 |
|
输出1999999个String来测试字节流的写入速度
输出1999999个String来测试字符流的写入速度
所占硬盘空间为大约1.17GB 两者相差很小
经测试,字符流的写入速度更快,快了大概十倍,且两者所占的内存相差很小
测试字符流单字节读取和数组读取所需时间
测试字节流单字节和字节数组的读取速度
结果
可见字符流的读取速度比字节流要快,而且用数组可以大幅度加快读取速度
测试字节缓存流读写文件所需时间(12MB的文件)
测试字节流读写文件所需的时间
得出的时间结果:
但是使用字符流和字符缓存流时,得到的结果是相反的
我认为是因为字符流本来就用了缓存区,经过了两次缓存区,效率反而更低了。
可看出,相比于不使用缓存,使用缓存后读取速度更快
使用场景:当要读写大文件,且电脑性能好的时候,可以大量使用缓存来提高读写速度。
所使用的时间
可以看出,c语言的读写效率更高
1.字符流基于字节流,字符流通过使用缓存等提升了读写速度。
2.在相同条件下,字节流与字符流的效率比约为1:20;,字符流是建立在字节流的基础上的,但是字符流使用了缓存,提高了效率;
3.应用场景:(1)字符流常用于处理文本数据,字节流常用于处理二进制数据
(2)在读写文件需要对文本格式化处理时使用字符流,仅仅是读写数据适合用字节流
4.可以使用数组读写的方式大幅度提高速度。
标签:char pac val stream src 场景 http strong 对象
原文地址:https://www.cnblogs.com/whycft/p/13020720.html