java字节流和字符流的比较哦啊

来源:互联网 发布:大学生网络惨案 编辑:程序博客网 时间:2024/05/17 15:35
package base;


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;


public class Test {
//比较基本字节流和缓冲流在复制较大文件时的效率,文件过G才明显
public static void t1() throws Exception {
long begin = System.currentTimeMillis();
// 1.架两个管道
File f = new File("d:\\json-lib-2.4-jdk15-sources.jar");
FileInputStream fis = new FileInputStream(f);
FileOutputStream fos = new FileOutputStream("d:\\java\\json-lib-2.4-jdk15-sources.jar");
// 2.来辆车
byte[] temp = new byte[1 * 1024]; // 1K
// 3.反复装车卸车(边读边写)
while (true) {
// 装车
int res = fis.read(temp);//从输入流中读到temp中
if (res == -1)
break;
// 卸车
fos.write(temp, 0, res);//从temp中写到输出流中去
}
// 4.关闭两个流
fis.close();
fos.close();
long end = System.currentTimeMillis();
System.out.println(end - begin);
}


public static void t2() throws Exception {//字符处理的快一些
long begin = System.currentTimeMillis();
// 1.架两个管道
File f = new File("d:\\json-lib-2.4-jdk15-sources.jar");
BufferedInputStream fis = new BufferedInputStream(
new FileInputStream(f));
BufferedOutputStream fos = new BufferedOutputStream(
new FileOutputStream("d:\\java\\json-lib-2.4-jdk15-sources.jar"));
// 2.来辆车
byte[] temp = new byte[1 * 1024]; // 1K
// 3.反复装车卸车(边读边写)
while (true) {
// 装车
int res = fis.read(temp);
if (res == -1)
break;
// 卸车
fos.write(temp, 0, res);
}


// 4.关闭两个流
fis.close();
fos.close();
long end = System.currentTimeMillis();
System.out.println(end - begin);
}


public static void main(String[] args) throws Exception {
//t1();
t2();
}
}
0 0