如何通过FileWriter在BufferedWriter上设置缓冲区大小
BufferedWriter当我使用一些线程将数据写入单个文件时遇到问题。
我设置的缓冲区大小BufferedWriter,但是无论设置多少,当缓冲区为8192(默认缓冲区大小)而不是我设置的大小(此处为16384)时,它都会将数据刷新到磁盘。我的代码有问题吗?
这就是我构建的方式BufferedWriter:
new BufferedWriter(new FileWriter(fileName, true), 16384);这是完整的代码:
import java.io.BufferedWriter;import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Test1 {
    public static void main(String[] args) throws IOException {
        for(int i =0;i<10;i++){
            MyThread r = new MyThread();
            Thread t = new Thread(r);
            t.start();
        }
    }
}
class MyThread implements Runnable {
    public void run() {
        String s = "{addffffffkkkljlkj2015dd}\n";
        BufferedWriter bw = null;
        try {
            bw = new BufferedWriter(new FileWriter(
                    "/Users/liaoliuqing/Downloads/1.txt", true),16384);
        } catch (IOException e) {
            e.printStackTrace();
        }
        for(int i =0 ; i<1000; i++){
            try {
                bw.write(String.format("%03d", i)+s);
                //bw.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
回答:
我通过使用OutputStream而不是writer解决了问题,这是代码:
bw = new BufferedOutputStream(                new FileOutputStream(new File("/Users/liaoliuqing/Downloads/1.txt"),true),165537);
以上是 如何通过FileWriter在BufferedWriter上设置缓冲区大小 的全部内容, 来源链接: utcz.com/qa/413305.html


