java读取文件效率优化_java流的性能优化1-文件复制

本文探讨了Java NIO(New IO)相对于传统IO的性能优势,包括Buffer缓存、Charset编码、Channel通道以及异步网络I/O。通过文件复制的实例展示了NIO在读写速度上的提升,并指出根据缓存大小调整可以进一步优化性能,但须注意内存使用与GC的影响。
摘要由CSDN通过智能技术生成

传统的I/O速度相对照较慢,它会成为系统性能的瓶颈,所以在java1.4之后提供了NIO。它是一种全新的流:它具有下面特性:

1.为全部的原是类型提供Buffer缓存支持。

2.使用java.nio.charset.Charset作为字符编码解码解决方式。

3.添加通道(Channel)对象,作为新的原始I/O抽象;

4.支持锁和内存映射文件的文件訪问接口;

5.提供基于Selector的异步网络I/O。

NIO是一种全新的流。跟流式的I/O不同。NIO是基于块的。它以块为基本单位处理数据。在NIO中,最为重要的两个组件是缓冲Buffer和通道Channel。如图这是他们指甲的关系

9c7d8eb920927d871944b14357811566.png

从上图的关系看来。Channel是一个双向的通道,就可以读又能够写。

如今。从性能上来比較一下io和Nio的性能差异吧。这是一个文件复制的样例,文件大小均为152m,缓存设置成1m:

public class CopyFile {

public static void main(String args[]) {

String path = "E:\\temp_nio.tmp";

String new_path = "E:\\demo\\nio.tmp";

long start = System.currentTimeMillis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值