gpt4 book ai didi

java - tomcat中线程的文件问题

转载 作者:行者123 更新时间:2023-11-28 22:13:47 25 4
gpt4 key购买 nike

我有一个 tomcat 服务器和一个写入文件的 Controller ,数据来自请求。所以我怀疑服务器中的多个线程是否可以同时写入同一个文件并导致问题?

我的要求是所有请求都将数据追加到同一个文件中。我没有使用任何线程。

我的代码如下:

File file = new File(fileName); 
try {
if(!file.exists()) {
file.createNewFile();
}
InputStream inputStream = request.getInputStream();
FileWriter fileWriter = new FileWriter(fileName,true);
BufferedWriter bufferWriter = new BufferedWriter(fileWriter);
bufferWriter.write(IOUtils.toString(inputStream));
bufferWriter.flush();
bufferWriter.close();
}

最佳答案

有针对此类问题的标准解决方案。

您必须创建 singleton类,它将在所有线程之间共享。

singleton会有一些BlockingQueue (例如 LinkedBlockingQueue ),其中所有线程都将它们的消息写入单个文件。

singleton它本身也将是 Thread在它的内部 run()方法会不断take来自 queue 的值并依次写入到需要的文件中。

关于java - tomcat中线程的文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708447/

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