文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!
说缓冲流的效率特别高,那么今天我们就来测试一下
采用普通的字节流
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /** * @author Buffered * @date 2020/4/24 4:16 下午 */ public class Buffered { public static void main(String[] args) throws FileNotFoundException { long start = System.currentTimeMillis(); //获取毫秒值 try ( FileInputStream fis = new FileInputStream("azlg.zip"); FileOutputStream fos = new FileOutputStream("copy.zip") ) { // 读写数据 int b; while ((b = fis.read()) != -1) { fos.write(b); } } catch (IOException e) { e.printStackTrace(); } long end = System.currentTimeMillis(); //获取毫秒值 System.out.println("普通流复制时间:" + (end - start) + "毫秒"); } }
采用字节缓冲流来复制文件
import java.io.*; /** * @author Buffered * @date 2020/4/24 4:16 下午 */ public class Buffered { public static void main(String[] args) throws FileNotFoundException { long start = System.currentTimeMillis(); //获取毫秒值 try ( BufferedInputStream fis = new BufferedInputStream(new FileInputStream("azlg.zip")); BufferedOutputStream fos = new BufferedOutputStream( new FileOutputStream("copy.zip")) ) { // 读写数据 int b; while ((b = fis.read()) != -1) { fos.write(b); } } catch (IOException e) { e.printStackTrace(); } long end = System.currentTimeMillis(); //获取毫秒值 System.out.println("缓冲流复制时间:" + (end - start) + "毫秒"); } }
在使用缓冲流的同时使用字节数组,能够更加提高复制的速度
import java.io.*; /** * @author Buffered * @date 2020/4/24 4:16 下午 */ public class Buffered { public static void main(String[] args) throws FileNotFoundException { long start = System.currentTimeMillis(); //获取毫秒值 try ( BufferedInputStream fis = new BufferedInputStream(new FileInputStream("azlg.zip")); BufferedOutputStream fos = new BufferedOutputStream( new FileOutputStream("copy.zip")) ) { // 读写数据 int b; byte[] bytes = new byte[8*1024]; while ((b = fis.read(bytes)) != -1) { fos.write(b); } } catch (IOException e) { e.printStackTrace(); } long end = System.currentTimeMillis(); //获取毫秒值 System.out.println("缓冲流使用字节数组复制时间:" + (end - start) + "毫秒"); } }
通过三段代码执行的时间分析,使用缓冲流能够大大增加文件复制的速度,舒勇字节数组则是可以经一部提高
一个5.7MB大小的文件,速度分别是34589毫秒到186毫秒到10毫秒
以及勤劳的自己