相关疑难解决方法(0)

使用多个线程编写文件

我试图使用多个线程在Java中编写一个巨大的文件.

我在Java中尝试了两个FileWriterbufferedWriter类.

正在写入的内容实际上是使用CopyManager和写入的整个表(Postgres).文件中的每一行都是表格中的一个元组,我一次写入100行.

写作方法:

在追加模式下,多个线程打开单个待写文件.之后每个线程都尝试写入文件文件.

以下是我面临的问题:

  • 有一段时间,文件的内容会被覆盖,即:一行保持不完整,下一行从那里开始.我的假设是,编写器的缓冲区已经满了.这会强制编写器立即将数据写入文件.写入的数据可能不是一个完整的行,在它可以写入余数之前,下一个线程将其内容写入文件.
  • 使用时Filewriter,我会在文件中看到一条黑线.

有什么建议,如何避免这种数据完整性问题?

java postgresql file-io multithreading bufferedwriter

6
推荐指数
1
解决办法
1万
查看次数