gpt4 book ai didi

Java - 多个线程写入同一个文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:28:24 28 4
gpt4 key购买 nike

<分区>

我正在尝试通过 Java 中的多个线程将一些内容写入文件。每个线程读取不同的输入文件,进行一些计算并将一些(不同的)内容写入公共(public)输出文件。问题在于,最终输出文件只包含最后一个终止线程写入的内容,而不包含其他线程写入的内容。线程的相关代码 -

public void run()
{
try
{
File file = new File("/home/output.txt");
if (!file.exists())
{
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);

BufferedReader br = new BufferedReader(new FileReader(inputfile)); // each thread reads a different input file
String line="";

while((line=br.readLine())!=null)
{
String id = line.trim(); // fetch id

StringBuffer sb = processId(userId); // process id

synchronized(this){
bw.write(sb.toString() + "\n"); // write to file
}
}
bw.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}

如何让所有线程将它们的内容写入公共(public)文件?

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com