java Io流中FileInputStream和BufferedInputStream的速度比较

首先是对FileInputStream 加上 FileOutputStream 对文件拷贝的应用

我这里拷贝的是一个视频。当然,你们拷贝什么都可以,当文件越大时效果越明显

下面是对BufferedInputStream 和 BufferedOutputStream 对文本拷贝的应用

最后在主程序测试刚写的两个方法,分别计算它们的运行时间差,并输出到控制台

package com.teacher;

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

public class DifferBuffer {

	public static void main(String[] args) {
		
		long beginTime = System.currentTimeMillis();
		copyFileBuffer();
		long endTime = System.currentTimeMillis();
		System.out.println("Buffered拷贝所花的时间:"+(endTime-beginTime)+"毫秒");
		
		long beginTime1 = System.currentTimeMillis();
		copyFile();
		long endTime1 = System.currentTimeMillis();
		System.out.println("FileIn/Out拷贝所花的时间:"+(endTime1-beginTime1)+"毫秒");
	}
	
	public static void copyFileBuffer(){
		File file=  new File("e:/io");
		file.mkdir();
		try {
			BufferedInputStream bin = new BufferedInputStream(new FileInputStream("e:/io/第二讲_1.wrf"));
			BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream("e:/io/twoce.wrf"));			
			byte[] bt = new byte[1024];
			int n=0;
			while ((n=bin.read(bt))!=-1) {
				bout.write(bt, 0, n);
				bout.flush();
			}
			bin.close();
			bout.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static void copyFile(){
		try {
			FileInputStream fin = new FileInputStream("e:/io/第二讲_1.wrf");
			FileOutputStream  fout=new FileOutputStream("e:/io/twoce3333.wrf");
			
			byte[]  by = new byte[1024];
			int len = 0;
			while ((len=fin.read(by))!=-1) {
				fout.write(by, 0, len);
				fout.flush();
			}
			fout.close();
			fin.close();
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	
	
}

  

结果图:当拷贝的文件越大时,这个时间差就越明显。可以看出使用Buffered 缓冲的效率很高。

原文地址:https://www.cnblogs.com/nn369/p/7485870.html