Java IO流之【缓冲流和文件流复制文件对比】
2017-05-01 15:59
281 查看
与文件流相比,缓冲流复制文件更快
代码:
运行结果比较:
代码:
package Homework; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; /** * 1 )将"今年是反法西斯胜利70周年,举国欢庆,所以要放假啦" 字符串 * 使用文件字符输出流 写入到oldhappy.dt文件中,复写10000行, * 要求换行 在文件的开头写入当前的时间 精确到毫秒在文件的结尾也写入当前的时间 精确到毫秒。 * @author Administrator * */ public class Test1 { public static void main(String[] args) { copy1(); copy2(); } //使用文件流复制文件 public static void copy1(){ FileOutputStream fos=null; try { //创建输入流,并创建要写入的文件oldhappy.dt fos=new FileOutputStream(new File("oldhapy.dt")); //获取写入前的当前时间 long l=System.currentTimeMillis(); //格式化时间 SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); String time=s.format(l); //写入时间 fos.write((time+"\r\n").getBytes()); //写入要写的内容,并换行 // \r\n表示换行 for(int i=1;i<=10000;i++){ fos.write("今年是反法西斯胜利70周年,举国欢庆,所以要放假啦\r\n".getBytes()); fos.flush(); } //获取写完后 时间 long l2=System.currentTimeMillis(); String time2=s.format(l2); fos.write(time2.getBytes()); //复制文件的时间 System.out.println("使用文件流复制文件时间:"+(l2-l)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { f61e // TODO Auto-generated catch block e.printStackTrace(); }finally { if(fos!=null){ try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //使用缓冲流复制文件 public static void copy2(){ BufferedOutputStream bos=null; try { bos=new BufferedOutputStream(new FileOutputStream("newhapy.dt")); long l=System.currentTimeMillis(); //格式化时间 SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); String time=s.format(l); //写入时间 bos.write((time+"\r\n").getBytes()); //写入要写的内容,并换行 // \r\n表示换行 for(int i=1;i<=10000;i++){ bos.write("今年是反法西斯胜利70周年,举国欢庆,所以要放假啦\r\n".getBytes()); bos.flush(); } //获取写完后 时间 long l2=System.currentTimeMillis(); String time2=s.format(l2); bos.write(time2.getBytes()); //复制文件的时间 System.out.println("使用缓冲流复制文件时间:"+(l2-l)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(bos!=null){ try { bos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
运行结果比较:
相关文章推荐
- w_文件流,缓冲流,二进制流复制文件哪个比较快!
- 分别使用文件流和缓冲流复制一个长度大于100MB的视频文件,并观察效率的差异
- Java IO流 文件的复制的几种方法(字节流,字符流,缓冲流)
- Java中用文件通道(FileChannel)、BufferedInputStream/BufferedOutputStream复制文件对比
- 10缓冲流的文件复制
- 文件拷贝过程中使用文件流、缓冲流、转换流以及速率比较
- php通过文件流方式复制文件的方法
- java中关于I/O文件流的操作实现文件复制和打印功能
- 用缓冲流进行文件的复制
- 文件流操作--将一个文件复制到另外一个地方
- C# 文件流操作 之 删除、复制、转移多个文件
- JAVA使用字节流与高速缓冲字节流复制文件对比
- C# 文件流操作 之 删除、复制、转移多个文件
- Java IO流之拷贝(复制)文件
- java中io与nio复制文件性能对比
- java输入输出流复制文件所用时间对比
- java IO流 读取文件 && 文件复制
- 使用缓冲流实现文件的复制
- 使用文件流FileStream复制视频文件
- JAVA基础再回首(二十二)——转换流概述及用法、简化写法FileWriter和 FileReader、字符缓冲流及特殊用法、字节流字符流复制文件方法总结