Java 怎样写好文件文件比较快

下次自动登录
现在的位置:
& 综合 & 正文
java:经典文件写入和读取,速度超快
package arrays.
import java.io.BufferedRimport java.io.BufferedWimport java.io.Fimport java.io.FileInputSimport java.io.FileNotFoundEimport java.io.FileOutputSimport java.io.FileRimport java.io.IOEimport java.io.InputStreamRimport java.io.PrintWimport java.io.StringRimport java.io.W
public class CreateFile { public static void main(String[] args) {
// readerFile("E:/workspace6/Arrays/src/myArray/Nodes.java");//
readerFileToo();
//writeInMemroy();
writeFile2(); }
// 经典读取数据一 public static String readerFile() {
// E:/workspace6/Arrays/src/myArray/Nodes.java
String s, s2 = "";
BufferedReader in = new BufferedReader(new FileReader
("E:/workspace6/Arrays/src/myArray/Nodes.java"));
while ((s = in.readLine()) != null) {
s2 += s + "/n";
in.close();
// System.out.println(s2);
} catch (IOException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
return s2; }
// 输入即返回 public static void readerFileToo() {
BufferedReader brIn = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("Enter a line:");
System.out.println(brIn.readLine().concat("+++++++"));
} catch (IOException e) {
e.printStackTrace();
} while (true); }
// 写入到内存(单个字符占一行) public static void writeInMemroy() {
StringReader sr = new StringReader(readerFile());
while ((c = sr.read()) != -1) {
System.out.println((char)c);
} catch (IOException e) {
e.printStackTrace();
//文件写入
public static void writeFile2(){
BufferedReader brWrite = new BufferedReader(new StringReader(readerFile()));
PrintWriter pwOut = new PrintWriter(new BufferedWriter(FileWriter("IODemo.out")));
int lintCount = 1;
String s = "";
while((s = brWrite.readLine()) != null){
pwOut.println(lintCount+"---&"+s);
} catch (IOException e) {
e.printStackTrace();
pwOut.close(); }
private static Writer FileWriter(String string) { }
public static void writeFile() {
File file = new File("C:/Sound.txt");
FileOutputStream fos =
FileInputStream fis =
file.createNewFile();
fos = new FileOutputStream(file);
fos.write(44646);
fos.close();
fis = new FileInputStream(file);
System.out.println(fis.read());
fis.close();
} catch (IOException e) {
e.printStackTrace();
【上篇】【下篇】没有更多推荐了,
不良信息举报
举报内容:
java的三种写文件方法的效率性能比较
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
比较一下java写文本文件文件的性能
摘要:比较一下java写文本文件文件的性能最近对以前开发的一个通用数据迁移的软件进行优化。除了用JDK5.0的多线程技术进行的改进之外,也比较了一下java写文件的性能。在java写文件中,通常会使用FileOutputStream和FileWriter,FileWriter只能写文本文件。FileOutputStream也经常结合BufferedOutputStream。因为实际应用中写文本文件的情况占了大多数。所以下面测试用不同的方式生成一个相同行数、大小相同的文件的三种不同方
比较一下java写文本文件文件的性能
最近对以前开发的一个通用数据迁移的软件进行优化。除了用JDK5.0的多线程技术进行的改进之外,也比较了一下java写文件的性能。 在java写文件中,通常会使用FileOutputStream和FileWriter,FileWriter只能写文本文件。FileOutputStream也经常结合BufferedOutputStream。因为实际应用中写文本文件的情况占了大多数。所以下面测试用不同的方式生成一个相同行数、大小相同的文件的三种不同方式。import java.io.Fimport java.io.FileOutputSimport java.io.*;
public class FileTest { public FileTest() { }
public static void main(String[] args) { FileOutputStream out = FileOutputStream outSTr = BufferedOutputStream Buff= FileWriter fw = int count=1000;//写文件行数 try { out = new FileOutputStream(new File(&C:/add.txt&)); long begin = System.currentTimeMillis(); for (int i = 0; i & 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 & 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 & 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分钟以上。
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
比较一下java写文本文件文件的性能相关信息,包括
的信息,所有比较一下java写文本文件文件的性能相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International全国咨询热线:400-
您现在的位置:> > 正文
一 & BufferedWriter写入文件
缓冲字符(BufferedWriter)是一个字符流类来处置字符数据。不同于字节流(数据转换成字节),你能够直接写字符串,数组或字符数据保管到文件。
复制代码代码如下:
packagecom.yiibai.
importjava.io.BufferedW
importjava.io.F
importjava.io.FileW
importjava.io.IOE
publicclassWriteToFileExample{
publicstaticvoidmain(String[]args){
Stringcontent=&Thisisthecontenttowriteintofile&;
Filefile=newFile(&/users/mkyong/filename.txt&);
//iffiledoesntexists,thencreateit
if(!file.exists()){
file.createNewFile();
FileWriterfw=newFileWriter(file.getAbsoluteFile());
BufferedWriterbw=newBufferedWriter(fw);
bw.write(content);
bw.close();
System.out.println(&Done&);
}catch(IOExceptione){
e.printStackTrace();
二 &FileOutputStream写入文件
文件输出流是一种用于处置原始二进制数据的字节流类。为了将数据写入到文件中,必需将数据转换为字节,并保管到文件。请参阅下面的完好的例子。
复制代码代码如下:
packagecom.yiibai.
importjava.io.F
importjava.io.FileOutputS
importjava.io.IOE
publicclassWriteFileExample{
publicstaticvoidmain(String[]args){
FileOutputStreamfop=
Stringcontent=&Thisisthetextcontent&;
file=newFile(&c:/newfile.txt&);
fop=newFileOutputStream(file);
//iffiledoesntexists,thencreateit
if(!file.exists()){
file.createNewFile();
//getthecontentinbytes
byte[]contentInBytes=content.getBytes();
fop.write(contentInBytes);
fop.flush();
fop.close();
System.out.println(&Done&);
}catch(IOExceptione){
e.printStackTrace();
if(fop!=null){
fop.close();
}catch(IOExceptione){
e.printStackTrace();
//更新的JDK7例如,运用新的&尝试资源关闭&的办法来轻松处置文件。
packagecom.yiibai.
importjava.io.F
importjava.io.FileOutputS
importjava.io.IOE
publicclassWriteFileExample{
publicstaticvoidmain(String[]args){
Filefile=newFile(&c:/newfile.txt&);
Stringcontent=&Thisisthetextcontent&;
try(FileOutputStreamfop=newFileOutputStream(file)){
//iffiledoesn'texists,thencreateit
if(!file.exists()){
file.createNewFile();
//getthecontentinbytes
byte[]contentInBytes=content.getBytes();
fop.write(contentInBytes);
fop.flush();
fop.close();
System.out.println(&Done&);
}catch(IOExceptione){
e.printStackTrace();
三 FileWritter写入文件
FileWritter,字符流写入字符到文件。默许状况下,它会运用新的内容取代一切现有的内容,但是,当指定一个true(布尔)值作为FileWritter结构函数的第二个参数,它会保存现有的内容,并追加新内容在文件的末尾。
1.交换一切现有的内容与新的内容。
newFileWriter(file);2.保存现有的内容和附加在该文件的末尾的新内容。
复制代码代码如下:
newFileWriter(file,true);
追加文件示例
一个文本文件,命名为&javaio-appendfile.txt&,并包含以下内容。
ABCHello追加新内容newFileWriter(file,true)
复制代码代码如下:
packagecom.yiibai.
importjava.io.F
importjava.io.FileW
importjava.io.BufferedW
importjava.io.IOE
publicclassAppendToFileExample
publicstaticvoidmain(String[]args)
Stringdata=&Thiscontentwillappendtotheendofthefile&;
Filefile=newFile(&javaio-appendfile.txt&);
//iffiledoesntexists,thencreateit
if(!file.exists()){
file.createNewFile();
//true=appendfile
FileWriterfileWritter=newFileWriter(file.getName(),true);
BufferedWriterbufferWritter=newBufferedWriter(fileWritter);
bufferWritter.write(data);
bufferWritter.close();
System.out.println(&Done&);
}catch(IOExceptione){
e.printStackTrace();
现在,文本文件&javaio-appendfile.txt&内容更新如下:
ABCHelloThiscontentwillappendtotheendofthefile
荣新推荐阅读:
怎么样?是不是感觉体内充满了洪荒之力,跃跃欲试?求知路上的快乐,我们伴您分享,成功的路上我们助你成功!
Copyright & 荣新IT培训中心 - Oracle培训、Linux培训、IOS培训、WEB前端工程师培训 京ICP备
地址:北京市海淀区白石桥路方圆大厦5层 (首都体育馆东侧) / 北京市海淀区四道口京果商厦 / 中关村软件园9号楼4层没有更多推荐了,
不良信息举报
举报内容:
java 写文件的三种方法比较
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 怎样在pdf文件上写字 的文章

 

随机推荐