设为首页 加入收藏

TOP

关于Java读写速度的考证
2014-11-24 11:25:09 来源: 作者: 【 】 浏览:0
Tags:关于 Java 读写 速度 考证

在测试虚拟硬盘的时候,查了一下基本的读取文件的方法,现在将各个方法列举如下,以及测试速度的时间,供大家作为参考,以后如果用到了,可选用合适的读取方式。


1. BufferedReader,BufferedWriter


这一种方法是实验室常用的一种方式,这种方式的好处是可以读取一行,然后针对每一行进行处理,他是构造一个缓冲流,然后进行读写,但是这种方法是相对比较慢的。
参考代码如下:


BufferedReader br = new BufferedReader(new FileReader(args[0]));
BufferedWriter bw=new BufferedWriter(new FileWriter(args[1]));
String line;
while((line=br.readLine())!=null)
{
bw.write(line);
}
bw.flush();
bw.close();
br.close();


参数可以自己选用。


2. RandomAccessFile


这一种方法不常用,是随机读取的方式,这种方式比较特殊,他不隶属于InputStream,OutputStream类系,他是直接继承自Object类的。RandomAccessFile的工作方式是,把DataInputStream和DataOutputStream粘起来,再加上它自己的一些方法,比如定位用的getFilePointer( ),在文件里移动用的seek( ),以及判断文件大小的length( )。此外,它的构造函数还要一个表示以只读方式("r"),还是以读写方式("rw")打开文件的参数 (和C的fopen( )一模一样)。它不支持只写文件,从这一点上看,假如RandomAccessFile继承了DataInputStream,它也许会干得更好。


参考代码如下:


RandomAccessFile read = new RandomAccessFile(args[0],"r");
RandomAccessFile writer = new RandomAccessFile(args[1],"rw");
byte[] b = new byte[1024*1024];
int count;
while((count=read.read(b))!=-1){
//System.out.println(count);
if(count!=b.length)
{
byte[] t=new byte[count];
for(int i=0;it[i]=b[i];
writer.write(t);
}
else writer.write(b);
}
writer.close();
read.close();


参数选择可以根据后边标记读写的进行选择,比如说第二个参数是"r",说明这是一个读文件的,如果是"rw",说明是写文件的。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇关于Java串口通信 下一篇ArcMap中使用Python遇到中文字段..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python 数据分析与可 (2025-12-26 21:51:20)
·从零开始学Python之 (2025-12-26 21:51:17)
·超长干货:Python实 (2025-12-26 21:51:14)
·为什么 Java 社区至 (2025-12-26 21:19:10)
·Java多线程阻塞队列 (2025-12-26 21:19:07)