1
39
正如其他人所指出的,使用一个编写器,并使用缓冲编写器,但不要调用
编辑:但是,我看到你接受了一个不同的答案,因为它是一条单行线。但这个解决方案有两个问题:
|
2
23
您应该使用BufferedWriter来优化写入(始终使用写入程序而不是输出流写入字符数据)。如果不编写字符数据,则将使用BufferedOutputstream。
或者,尝试使用资源(Java 7和UP)
由于您最终要写入一个文件,一个更好的方法是更频繁地写入BufferedWriter,而不是在内存中创建一个巨大的StringBuilder,并在最后写入所有内容(取决于您的用例,您甚至可以完全消除StringBuilder)。在处理过程中增量写入将节省内存并更好地利用有限的I/O带宽,除非另一个线程在您写入的同时试图从磁盘读取大量数据。 |
3
15
如果绳子很大,
为了避免这种情况,您可以提取字符串块并将其写在单独的部分中。 以下是它的外观:
希望这有帮助。 |
4
14
你可以用 Apache Commons IO 图书馆,给你 FileUtils :
|
5
3
更好地使用字符数据
请注意,您调用非参数的方式
|
6
1
如果字符串本身很长,那么您一定要避免toString(),它会生成字符串的另一个副本。写入流的最有效方法应该是这样的,
|
7
0
基于 https://stackoverflow.com/a/1677317/980442
我创建的这个函数使用
|
8
0
大多数答案的基准+改进的实施: https://www.genuitec.com/dump-a-stringbuilder-to-file/ 最终的实施是沿着
|
9
0
由于Java 8,您只需要这样做:
你不需要任何第三方图书馆来做这件事。 |
7BeholdeR7 · 文件夹的重量超过其中的文件(六倍) 2 年前 |
ilteris · 为什么程序在fscanf后崩溃 2 年前 |
Peaceful · 使用fscanf读取C中具有未知行数的文件 2 年前 |
NOCi · 如何将Tensorflow的结果记录到CSV文件 2 年前 |
Oakzeh · 如何在字符串索引之前读取文件并删除字符 2 年前 |