我想知道什么是高效的(在时间和内存方面)java代码来实现以下功能:
我需要一个java程序来连续检查两个文件,第一个文件我们称之为A,将有一个不断添加的产品名称,另一个文件B将是来自不同来源的相应价格。这两个文件都在动态更新。该程序要做的是,每当将产品添加到 A 时,它都会将该单词添加到列表中,并且只要没有添加新产品,它就会考虑从那时起添加到文件 B 的每个新价格作为价格的相应产品。然后它将创建产品和价格的映射。
所以,这是文件
一个
Macbook Pro
戴尔 XPS
联想
B
(Macbook pro 添加到文件 A 中)
100
200
(Dell XPS 添加到文件 A 中)
300
400
(A中添加联想)
500
600
700
所以它将创建一个类似的映射,
Macbook Pro -> 100,200
戴尔 XPS -> 300、400
联想 -> 500、600、700
上面的例子说明了我想要实现的目标。 到目前为止,我的想法是,让两个线程监视每个文件,每当将产品添加到 A 时,就从 B 开始计数(标记 B 中的先前位置),每当将新产品添加到 A 时,从之前标记的位置开始从 B 开始计数。 这是正确的做法吗? 如何才能不断地读取动态文件呢?
最佳答案
我会使用Apache Commons-IO FileAlterationObserver ,这样您就可以使用在文件更改时收到通知的监听器。
关于java - 多线程java程序中不断监控动态更新的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12794899/