Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带路径参数和缓冲区大小参数的BufferedWriter_Java_Java Io - Fatal编程技术网

Java 带路径参数和缓冲区大小参数的BufferedWriter

Java 带路径参数和缓冲区大小参数的BufferedWriter,java,java-io,Java,Java Io,我知道我可以做到这一点(当然有相应的尝试和捕捉) 还有这个 BufferedWriter writer = new BufferedWriter(new FileWriter(outputFieLocation), 5 * 1024); 有没有办法使用Path作为参数来设置缓冲区大小?没有,但是可以使用Path.toFile()将路径转换为适合FileWriter构造函数的等效文件对象。请注意,不应使用文件编写器,因为它不允许指定字符集 final File file = path.toFil

我知道我可以做到这一点(当然有相应的尝试和捕捉)

还有这个

BufferedWriter writer = new BufferedWriter(new FileWriter(outputFieLocation), 5 * 1024);

有没有办法使用Path作为参数来设置缓冲区大小?

没有,但是可以使用
Path.toFile()
路径
转换为适合
FileWriter
构造函数的等效
文件
对象。请注意,不应使用
文件编写器
,因为它不允许指定
字符集

final File file = path.toFile();
BufferedWriter out = new BufferedWriter(
   new OutputStreamWriter(new FileOutputStream(file),"UTF-8"), bufferSize);
()


如果没有设置自定义缓冲区大小的具体原因,请使用
Files.new…
替代选项,JDK默认值是合理的。

默认缓冲区大小为8192个字符,是否需要更大?该值应足以进行I/O操作,并且不应出现性能问题。您将如何写入数据@csoroiu我正在合并100MB到500MB的大型日志文件。我想使用至少500 KB的缓冲区。@user251414能否更具体一点,我不明白你的问题。如果你想合并文件,为什么不使用transferTo函数?如果你不需要做一些特殊的逻辑,这个功能运行得更快。
final File file = path.toFile();
BufferedWriter out = new BufferedWriter(
   new OutputStreamWriter(new FileOutputStream(file),"UTF-8"), bufferSize);