我有一个传感器,它将收集的数据写入txt文件(连续,每秒一个),我唯一关心的数据是传感器收集的最后一个数据, 我想用Matlab(或Java)分析数据,该怎么做? 提前致谢!
最佳答案
您需要能够监视文件的更新,然后在检测到更改时采取一些操作。我相信以前这必须通过轮询机制来完成,但在 Java 7 中您可以使用 WatchService
:
public static void main(String[] args) throws InterruptedException {
Path dir = Paths.get("src/main/resources/");
try {
WatchService watcher = FileSystems.getDefault().newWatchService();
WatchKey key = dir.register(watcher, StandardWatchEventKinds.ENTRY_MODIFY);
while (true){
watcher.take();
List<WatchEvent<?>> events = key.pollEvents();
// Handle update
key.reset();
}
} catch (IOException x) {
System.err.println(x);
}
}
我建议您在处理更新时仔细考虑线程安全性 - 我建议在读取文件之前将文件复制到安全的“暂存”位置,以避免与更新过程发生读/写冲突。
关于java - Matlab同时读写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31903121/