2013-10-02 57 views
1

我知道我能做到这一点(与相应的尝试,当然捕捉)BufferedWriter将与Path参数和缓冲区大小参数

Path path = Paths.get(outputFieLocation); 
BufferedWriter writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8); 

,这也

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

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

+0

默认的bufferSize是8192个字符,你需要它更大吗?这个值应该足够用于I/O操作,并且不应该有性能问题 – Claudiu

+0

你将如何写入数据? – 2013-10-02 12:52:38

+0

@csoroiu我将100MB到500MB的大型日志文件合并在一起。我想使用至少500 KB缓冲区。 – locorecto

回答

1

不,但您可以使用path.toFile()Path转换为适用于FileWriter的构造函数的等效File对象。请注意,您不应使用FileWriter,因为它不允许指定Charset

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

from here

如果没有特殊原因,设置自定义缓冲器大小,使用Files.new...替代方案中,JDK缺省值是合理的。