与文件流相比,缓冲流复制文件更快

代码:

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) {
// 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();
}
}
}
} }

运行结果比较:

最新文章

  1. SQL语句判断数据库、表、字段是否存在
  2. 【leetcode】Min Stack -- python版
  3. Redmine新建问题速度慢
  4. WebApi 消息拦截
  5. loj 1017(dp)
  6. 【NOIP模拟赛】lover——心上人
  7. C# mongodb [下]
  8. java cmd常用命令
  9. Android项目包装apk和apk反编译,xml反编译
  10. [js高手之路]Vue2.0基于vue-cli+webpack Vuex用法详解
  11. Java 与C++的各种优势与弱点--学习更新中
  12. 安装软件the error code is 2203解决方法
  13. parcel 在js中导入 html 文件
  14. EL表达式和JSTL的使用
  15. 生成代码的代码 之 POJO生成器 之二 模板实现
  16. Jersey入门二:运行项目
  17. 在spring中使用quartz配置作业的二种方式
  18. CentOS7.5 firefox Flash插件更新
  19. vue学习笔记 vue安装
  20. [转]unity之LOD

热门文章

  1. MyBatis注解配置动态SQL
  2. WPF触屏Touch事件在嵌套控件中的响应问题
  3. [Day02] int, str功能学习
  4. test back
  5. ASP.NET Core:部署项目到Ubuntu Server
  6. java:Comparator比较器
  7. oracle job执行失败
  8. (坑)django test在多线程下的问题
  9. hdu4597 Play Game 区间DP
  10. Django项目部署到Apache服务器