package Io;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.junit.Test;
/**
* 比较各个流复制文件的速度(文件大小127MB)
* @author LYJ
* IO流 输入输出 文件大小(MB) 花费时间 (毫秒)
* 1. FileInputStream FileOutputStream 127 2130
* 2. BufferedInputStream BufferedOutputStream 127 334
* 3. FileReader FileWriter 127 4275
* 4. BufferedReader BufferedWriter 127 4478
*/
public class TestSpeed {
private File f1 = null;
private File f2 = null;
private File f3 = null;
private FileInputStream fis = null;
private FileOutputStream fos = null;
private int len = 0;
private byte [] b = new byte[1024];
private long start = 0;
private long end = 0;
private char [] ch = new char[1024];
/**********************************************************************************************
* 字节流
* FileInputStream FileOutPutStram
*/
// @Test
// public void inputstream() {
// start=System.currentTimeMillis();
// try {
// f1 = new File("F://a//a.exe");
// f2 = new File("E://1");
// f3 = new File(f2,"a.exe");
// if(!f2.exists()) {
// f2.mkdirs();
// }
// fis = new FileInputStream(f1);
// fos = new FileOutputStream(f3);
// while((len = fis.read(b))!=-1) {
// fos.write(b,0,len);
// }
// end = System.currentTimeMillis();
// System.out.println("拷贝成功~"+"花费时间(毫秒):"+(end-start));
//
//
//
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//
//
// }
/***************************************************************************************/
/**
*
* 缓冲字符流 BufferedInputStream BufferedOutputStream
*
// */
// @Test
// public void BufferedByte() {
// start=System.currentTimeMillis();
// try {
// f1 = new File("F://a//a.exe");
// f2 = new File("E://1");
// f3 = new File(f2,"a.exe");
// if(!f2.exists()) {
// f2.mkdirs();
// }
// fis = new FileInputStream(f1);
// BufferedInputStream bis = new BufferedInputStream(fis);
// fos = new FileOutputStream(f3);
// BufferedOutputStream bos = new BufferedOutputStream(fos);
// while((len = bis.read(b))!=-1) {
// bos.write(b,0,len);
// }
// end = System.currentTimeMillis();
// System.out.println("拷贝成功~"+"花费时间(毫秒):"+(end-start));
//
//
//
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//
// }
//
// /*************************************************************************************************/
// /**字符流
// * FileReader FileWriter
// */
// @Test
// public void FileFW() {
// start=System.currentTimeMillis();
// try {
// f1 = new File("F://a//a.exe");
// f2 = new File("E://1");
// f3 = new File(f2,"a.exe");
// if(!f2.exists()) {
// f2.mkdirs();
// }
// FileReader fr = new FileReader(f1);
// FileWriter fw = new FileWriter(f3);
// while((len = fr.read(ch))!=-1) {
// fw.write(ch,0,len);
// }
// end = System.currentTimeMillis();
// System.out.println("拷贝成功~"+"花费时间(毫秒):"+(end-start));
//
//
//
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//
//
// }
/*********************************************************************************************/
@Test
public void BufferedFW() {
start=System.currentTimeMillis();
try {
f1 = new File("F://a//a.exe");
f2 = new File("E://1");
f3 = new File(f2,"a.exe");
if(!f2.exists()) {
f2.mkdirs();
}
FileReader fr = new FileReader(f1);
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter(f3);
BufferedWriter bw = new BufferedWriter(fw);
while((len = br.read(ch))!=-1) {
bw.write(ch,0,len);
}
end = System.currentTimeMillis();
System.out.println("拷贝成功~"+"花费时间(毫秒):"+(end-start));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}