java 读取文件 效率_JAVA读写文本文件的效率
在java写文件中,通常会使用FileOutputStream和FileWriter,FileWriter只能写文本文件。 FileOutputStream也经常结合BufferedOutputStream。因为实际应用中写文本文件的情况占了大多数。所以下面测试用不同的方式生成一个相同行数、大小相同的文件的三种不同方式。
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.*;
publicclassFileTest {
publicFileTest() {
}
publicstaticvoidmain(String[] args) {
FileOutputStream out = null;
FileOutputStream outSTr = null;
BufferedOutputStream Buff=null;
FileWriter fw = null;
intcount=1000;//写文件行数
try{
out = newFileOutputStream(newFile("C:/add.txt"));
longbegin = System.currentTimeMillis();
for(inti =0; i
out.write("测试java 文件操作\r\n".getBytes());
}
out.close();
longend = System.currentTimeMillis();
System.out.println("FileOutputStream执行耗时:"+ (end - begin) +" 豪秒");
outSTr = newFileOutputStream(newFile("C:/add0.txt"));
Buff=newBufferedOutputStream(outSTr);
longbegin0 = System.currentTimeMillis();
for(inti =0; i
Buff.write("测试java 文件操作\r\n".getBytes());
}
Buff.flush();
Buff.close();
longend0 = System.currentTimeMillis();
System.out.println("BufferedOutputStream执行耗时:"+ (end0 - begin0) +" 豪秒");
fw = newFileWriter("C:/add2.txt");
longbegin3 = System.currentTimeMillis();
for(inti =0; i
fw.write("测试java 文件操作\r\n");
}
fw.close();
longend3 = 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毫秒。
不要小看这几秒的时间。当操作的数据量很大的时候,这点性能的差距就会很大了。在通用数据迁移工具导出数据库2千万条记录生成sql脚本文件的时候,性能性能相差10分钟以上。
java 读取文件 效率_JAVA读写文本文件的效率相关推荐
- java 读取文件内容_Java如何读取txt文件的内容?
这个并不困难,大概的步骤是这样的: TXT是一个文本文件,一般采用流的方式读取: java提供了一个FileInputStream,我们可以直接以文件路径构造这个流,也可以以文件对象构造他,如:Fil ...
- java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件
获取文件的绝对路径,读取该文件 一.文件目录打印图 下面的文件目录图,是项目中文件的位置信息:下面的例子是按照这个图来演示的. . |-- java | |-- ibard | | |-- demo1 ...
- java读取文件错误_java读取文件内容错误,确实在这个目录下
package com.typesafe.config; import java.io.File; import java.io.IOException; import java.io.Reader; ...
- java 读取文件 二进制_JAVA中读取文件(二进制,字符)内容的几种方法总结
public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public static void readFileB ...
- java读取文件夹_Java读取某个文件夹下的所有文件(支持多级文件夹)
packagecom.vocy.water.batch;importjava.io.FileNotFoundException;importjava.io.IOException;importjava ...
- java 文件的读效率,java 读取文件内容 三种形式及效率对比
IOUtils.getStringFromReader() 读取方式为最快的 InputStream in = null; String line = ""; long start ...
- java 读取文件 过滤_java读取txt文件,如何过滤掉注释以及空格
展开全部 import java.io.RandomAccessFile; /** * 格式 * * * * * @author cs12110 2018年11月16日 * @see * @since ...
- java 读取文件 效率_Java 逐行读取文本文件的几种方式以及效率对比
前言 上周负责的模块中需要逐行读取文件内容, 写完之后对程序执行效率不太满意, 索性上网查了一下 Java 逐行读取文件内容的各种方法, 并且简单地比对了一下执行效率. 在此记录, 希望能够帮到有需要 ...
- java 读取文件文本内容_Java读取文本文件
java 读取文件文本内容 There are many ways to read a text file in java. Let's look at java read text file dif ...
- java读取文件的方法是_Java读取文件方法大全
Java读取文件方法大全 2011/11/25 9:18:42 tohsj0806 http://tohsj0806.iteye.com 我要评论(0) 摘要:文章来源:http://www.c ...
最新文章
- 如何成为python 数据分析师_如何成为一名真正的数据分析师或者数据工程师
- reentrantlock 使用
- 唐山一个葬礼上的豪华车队
- caioj 1063 动态规划入门(一维一边推1:美元和马克)
- 跟随鼠标走的文字的html代码,跟随鼠标走的文字的HTML代码
- 操作系统:第四章 文件管理2 - 磁盘管理,磁盘调度算法
- Widget开发中遇到的坑
- python 数据库中文乱码 Excel
- 1013. 数素数 (20)-PAT乙级真题
- 《Storm技术内幕与大数据实践》一第1章 绪论
- python函数的四个特点_Python面向对象三大特征之封
- STM32机器人控制开发教程No.2 霍尔编码器电机测速以及增量式PID控制(基于HAL库)
- 删除目录以及子目录以下所有目录和文件
- HTML5+CSS3小实例:炫彩流光圆环加载动画
- 解决cascader级联选择器报错“level“ of null
- 数据分析3 - 算法篇
- html5的download下载标签
- 为什么要嫁给物理学3
- AVS+标准应用现状
- 如何连接ftp服务器
热门文章
- android studio 如何修改app名字、修改app图标
- 自然语言表示简史(BERT/ELMO/Word2vec/LDA/Bow/Ohehot,词向量、句向量、优缺点、应用与解决的问题)
- OFDM专题之多径效应引起的码间串扰问题
- 差分探头和隔离探头有什么区别
- 解决wps在windows上弹窗等的流氓行为
- 数学建模matlab题型,数学建模题型之分类
- 印象笔记编辑html,三个小工具帮你搞定印象笔记模版
- 全面:Realtek/瑞昱无线产品图谱及市场构成
- 办公室局域网组建计算机网络,如何组建办公室局域网
- RobotStudio软件:ABB机器人弧焊焊接起始点接触寻位虚拟仿真方法