package com.io;
import java.io.File;
import java.io.FileOutputStream;
import java.io.*;
/**
* @ClassName: TestFileOutputStream
* @Description: TODO
* @author:
* @date:2014-12-25 上午09:52:34
*/
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=10000;//写文件行数
try {
out = new FileOutputStream(new File("H:\\test\\aaa.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("H:\\test\\aa1.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("H:\\test\\aa2.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毫秒。
不要小看这几秒的时间。当操作的数据量很大的时候,这点性能的差距就会很大了。在通用数据迁移工具导出数据库2千万条记录生成sql脚本文件的时候,性能性能相差10分钟以上。
分享到:
相关推荐
在给定的Java代码中,我们可以看到,程序首先定义了写入文件的路径、切分文件的路径、数据的个数、子文件的个数、精度等变量,然后使用WriteData方法将大数据文件写入到指定的路径中。WriteData方法使用FileWriter和...
FileWriter 是 Java 中最基本的文件写入类,它可以将字符串或字符数组写入文件中。使用 FileWriter 写入文件时,需要指定文件名和是否追加内容的参数。如果将第二个参数设置为 true,则文件内容将被追加到文件的末尾...
Java中提供了多种文件写入方式,例如使用FileWriter、BufferedWriter、PrintWriter等。在这里,我们使用FileWriter来演示文件写入的过程。 1. 创建文件对象 首先,我们需要创建一个文件对象,用于指定写入文件的...
同时,为了方便操作,可以创建一个DXFWriter类,封装图层管理、实体创建和文件写入等功能。例如,创建直线的函数可以接收起点和终点坐标,然后将其转换成DXF格式的字符串并写入文件。 为了实现这个功能,你可以参考...
本示例将介绍如何使用Java创建Excel文件并写入数据,主要涉及的库是`jxl`,这是一个用于读写Excel文件的开源Java库。 首先,我们需要引入`jxl`库。`jxl.jar`包含了一系列的类和接口,用于处理Excel文件的各种操作。...
3. 写入 dbf 文件:使用 DBFWriter 对象的写入方法,写入 dbf 文件,包括写入表头、字段信息、数据记录等。 4. 关闭 DBFWriter 对象:使用 DBFWriter 对象的关闭方法,关闭 dbf 文件的写操作。 二、相关类的介绍 ...
此外,本文还提供了一些相关的学习资源,例如《Java+MySQL数据库程序设计总结》、《Java数据结构与算法教程》、《Java文件与目录操作技巧汇总》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》,这些资源...
本项目涉及的关键知识点主要包括文件写入、项目相对路径、Java反射以及模板数据写入。这些技术都是构建复杂应用时不可或缺的部分。 首先,我们要了解文件写入。在Java中,我们可以使用`java.io`包下的`FileWriter`...
例如,只保留.java文件: ```java stream.filter(path -> path.toString().endsWith(".java")); ``` 3. **将文件列表写入指定文件** 创建一个`BufferedWriter`用于写入文件,然后将每个文件路径转换为字符串并...
java利用io技术创建文件夹、读取txt文件、写入txt文件(覆盖、不覆盖均有)
在Java编程中,读取文件、对数据进行排序并重新写入文件是常见的操作,尤其在数据处理和分析场景中。下面将详细讲解这个过程,包括相关知识点和具体实现。 首先,我们需要导入Java的`java.io`包,该包包含了处理...
在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的
改程序实现了简单的java的文件读取以及写入的操作
java将一个文件夹中的文件写入到一个文件
在Java中,处理XML文件主要有四种方式:DOM(Document Object Model)、SAX(Simple API for XML)、StAX(Streaming API for XML)以及JAXB(Java Architecture for XML Binding)。下面将详细介绍这四种方法。 1....
在这个场景下,我们关注的是Java IO在处理文件时的写入和读取操作,特别是如何进行分页操作以及如何防止出现乱码问题。下面我们将深入探讨这些知识点。 首先,让我们了解一下Java中的IO流。Java IO流分为字符流和...
Java作为一种广泛使用的编程语言,提供了多种方式来读取和写入CSV文件。本文将深入探讨如何使用Java进行CSV文件的操作,基于提供的代码片段,我们将详细解析其工作原理,并扩展相关的知识点。 #### 一、Java读取CSV...
JAVA 文件写入 效率测试 fileWrite outputStreamTest bufferedOutputTest bufferedWriteTest bufferedWrite And FileWriterTest bufferedWrite And BufferedOutputStreamTest
这篇博文主要探讨了如何使用Java进行常见的文件操作,包括创建、读取、写入、删除文件以及处理目录等。以下是对这些知识点的详细说明: 1. **创建文件**: 在Java中,我们可以使用`java.io.File`类来创建文件。...