是否可以同时读取和写入文件?
这是场景:
- ThreadA将从某个套接字读取,并将数据写入“MyFile.txt”
- ThreadB将读取“MyFile”,当它到达结尾时,它将循环直到MyFile中有新数据可用(因为我不想重新打开“MyFile.txt”,并且因为我达不到时间而浪费时间我在哪里的位置..)。
有可能做这样的事吗?
如果没有,还有另一种方法可以做这样的事吗?
你提到的问题是着名的生产者消费者问题
对此的常见解决方案是使用BlockingQueue
实际使用的一个例子是AjaxYahooSearchEngineMonitor
线程A做的是,它会将一个字符串提交给队列,然后立即返回。
线程B做的是,它将逐个从队列中获取项目并处理它们。 当队列中没有项目时,线程B将在那里等待。 参见源代码的第83行。
我认为可以使用java NIO库