在多线程java程序中不断监视动态更新的文件

时间:2012-10-09 07:26:46

标签: java multithreading parallel-processing

我想知道实现以下内容的java代码的效率(在时间和内存方面):

我需要一个java程序来连续检查两个文件,第一个文件让我们称之为A将持续添加产品名称,另一个文件B将是来自不同来源的相应价格。这两个文件都在动态更新。该程序将做的是,每当产品添加到A时,它会将该单词添加到列表中,只要没有添加新产品,它就会将从该时间添加到文件B的每个新价格视为价格相应的产品。然后它将创建产品和价格的映射。

所以,这是文件

A

Macbook Pro

戴尔XPS

联想

(Macbook pro在文件A中添加)

100

200

(Dell XPS添加到文件A中)

300

400

(联想在A中添加)

500

600

700

所以它会创建一个像

这样的映射

Macbook Pro - > 100200

戴尔XPS - > 300,400

联想 - > 500,600,700

上面的例子说明了我想要实现的目标。 到目前为止,我的想法是,每当产品被添加到A时,保持两个线程监视每个文件,从B开始计数(标记B中的前一个位置),每当新产品添加到A时,从先前标记的位置开始从B开始。 这是一种正确的方法吗? 我怎样才能不断阅读动态文件?

1 个答案:

答案 0 :(得分:2)

我会使用Apache Commons-IO FileAlterationObserver,您可以使用在文件发生变化时收到通知的监听器。