【问题标题】:Java text file I/OJava 文本文件 I/O
【发布时间】:2012-04-05 08:44:15
【问题描述】:

在java中写入文本文件的快速方法是什么? 目前我用这种方式写一个文本文件:

FileOutputStream fos = new FileOutputStream('FileName');                            
DataOutputStream dos = new DataOutputStream(fos);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(dos, Charset.forName(this.config.getCharset())));

我的文件大小将增加 3 GB。

【问题讨论】:

    标签: java java-io


    【解决方案1】:

    在写入大量数据后刷新缓冲区。 FileOutputStream 对于文本文件应该足够了。不需要使用DataOutputStream

    【讨论】:

    • 我一次写一行,什么时候必须刷新缓冲区?
    • BufferedWriter 最终会在缓冲区填满后刷新缓冲区。默认为 8192 字节。如果你想让它写得更快(现在),刷新它。
    • FileOutputStream 是用java写文本文件的快速方法吗?
    • 我会说它是唯一的,除非你使用一些 C 库而不是 JNI。
    【解决方案2】:

    怎么样

    FileOutputStream fos = new FileOutputStream('FileName');
    BufferedOutputStream bof = new BufferedOutputStream(fos);
    bof.write("some text".getBytes()); // or just byte array
    

    FileWriter fstream = new FileWriter("out.txt");
      BufferedWriter out = new BufferedWriter(fstream);
      out.write("Some text");
    

    这里不需要使用 DataOutputStream。

    【讨论】:

    • RandomAccessFile 比 FileWriter 好?
    • “更好”是什么意思?更快?
    猜你喜欢
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 2014-08-25
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2021-06-03
    相关资源
    最近更新 更多