JAVA写文件
来源:互联网 发布:环保监测数据 编辑:程序博客网 时间:2024/06/06 03:17
最近对以前开发的一个通用数据迁移的软件进行优化。除了用JDK5.0的多线程技术进行的改进之外,也比较了一下java写文件的性能。
Java代码
- imp
ort java.io.File; - imp
ort java.io.FileOutputStream; - imp
ort java.io.*; -
- public
class FileTest { -
public FileTest() { -
} -
-
public static void main(String[] args) { -
FileOutputStream out = null; -
FileOutputStream outSTr = null; -
BufferedOutputStream Buff=null; -
FileWriter fw = null; -
int count=1000;//写文件行数 -
try { -
out = new FileOutputStream(new File("C:/add.txt")); -
long begin = System.currentTimeMillis(); -
for (int i = 0; i < count; i++) { -
out.write("测试java 文件操作\r\n".getBytes()); -
} -
out.close(); -
long end = System.currentTimeMillis(); -
System.out.println("FileOutputStream执行耗时:" + (end - begin) + " 豪秒"); -
-
outSTr = new FileOutputStream(new File("C:/add0.txt")); -
Buff=new BufferedOutputStream(outSTr); -
long begin0 = System.currentTimeMillis(); -
for (int i = 0; i < count; i++) { -
Buff.write("测试java 文件操作\r\n".getBytes()); -
} -
Buff.flush(); -
Buff.close(); -
long end0 = System.currentTimeMillis(); -
System.out.println("BufferedOutputStream执行耗时:" + (end0 - begin0) + " 豪秒"); -
-
-
fw = new FileWriter("C:/add2.txt"); -
long begin3 = System.currentTimeMillis(); -
for (int i = 0; i < count; i++) { -
fw.write("测试java 文件操作\r\n"); -
} -
fw.close(); -
long end3 = System.currentTimeMillis(); -
System.out.println("FileWriter执行耗时:" + (end3 - begin3) + " 豪秒"); -
-
} catch (Exception e) { -
e.printStackTrace(); -
} -
finally { -
try { -
fw.close(); -
Buff.close(); -
outSTr.close(); -
out.close(); -
} catch (Exception e) { -
e.printStackTrace(); -
} -
} -
} -
-
- }
- 1.当count=1000的,即写文件1000行的时候,写出的文件大小为18.5KB:
- FileOutputStream执行耗时:46
豪秒 - BufferedOutputStream执行耗时:31
豪秒 - FileWriter执行耗时:15
豪秒 -
-
- 2.当count=10000的,即写文件10000行的时候,写出的文件大小为185KB:
- FileOutputStream执行耗时:188
豪秒 - BufferedOutputStream执行耗时:32
豪秒 - FileWriter执行耗时:16
豪秒 -
-
-
- 3.当count=100000的,即写文件100000行的时候,写出的文件大小为1856KB:
- FileOutputStream执行耗时:1266
豪秒 - BufferedOutputStream执行耗时:125
豪秒 - FileWriter执行耗时:93
豪秒 -
-
-
- 4.当count=1000000的,即写文件1000000行的时候,写出的文件大小为18555KB:
- FileOutputStream执行耗时:12063
豪秒 - BufferedOutputStream执行耗时:1484
豪秒 - FileWriter执行耗时:969
豪秒
由 以上数据可以看到,如果不用缓冲流BufferedOutputStream,FileOutputStream写文件的鲁棒性是很不好的。当写 1000000行的文件的时候,FileOutputStream比FileWriter要慢11094毫秒(11 秒),BufferedOutputStream比FileWriter慢515毫秒。
- Java 写文件 写excel
- java 写EXCEL文件
- Java 写CSV 文件
- Java写文件
- JAVA 写文件操作
- java写文件操作
- java写普通文件
- java写文件比较
- JAVA 写文件方法
- java 写文件
- java 写txt文件
- java 追加写文件
- Java NIO 写文件
- java追加写文件
- JAVA写文件
- java写bat文件
- java追加写文件
- Java 写xml文件
- iOS菜鸟学习——storyboard中自定义cell
- java的Hashtable
- ListView总结
- 内容复制加入版权信息
- java基础
- JAVA写文件
- 判断手机号码,电话号码函数
- D3DPRESENT_PARAMETERS参数
- 贴一份宏定义 防止丢失
- C++语言复习八 结构体指针(指向类的指针)的两种引用方式。
- 关于PHP你可能不知道的-PHP的事件驱动化设计
- PhpQuery PHP操作HTML类,PHP操作XML类,PHP操作Dom类
- API总结3
- NoSQL入门文章推荐