是否可以同时读取和写入文件?

这是场景:

  • ThreadA将从某个套接字读取,并将数据写入“MyFile.txt”
  • ThreadB将读取“MyFile”,当它到达结尾时,它将循环直到MyFile中有新数据可用(因为我不想重新打开“MyFile.txt”,并且因为我达不到时间而浪费时间我在哪里的位置..)。

有可能做这样的事吗?

如果没有,还有另一种方法可以做这样的事吗?

你提到的问题是着名的生产者消费者问题

对此的常见解决方案是使用BlockingQueue

实际使用的一个例子是AjaxYahooSearchEngineMonitor

线程A做的是,它会将一个字符串提交给队列,然后立即返回。

线程B做的是,它将逐个从队列中获取项目并处理它们。 当队列中没有项目时,线程B将在那里等待。 参见源代码的第83行。

我认为可以使用java NIO库