Haxe异步读取本地文件?

时间:2015-11-16 16:05:54

标签: file ipc haxe

我需要使用其他应用程序进行IPC。该应用程序发送数据,我的Haxe应用程序收到。由于某种原因,我的选择缩小到文件系统。

我的想法是让其他应用程序不断更新文件,我的Haxe应用程序继续从该文件中读取。问题是我一直在获得相同的值,尽管数据文件正在发生变化。我假设我需要一些异步读取器来获取更新的文件,但我应该使用什么?

这是我的代码:

var tmpWaveRaw = sys.io.File.getContent("assets/wave.txt");
trace(tmpWaveRaw); //always stays the same when the app is running, but changes when the app restarts.

谢谢!

更新 这是我刚才做的一个实验:

  1. 让我的代码每隔100毫秒继续打印文件的修改时间。
  2. 让其他应用程序修改文件并停止。
  3. 启动我的申请。现在它正在打印正确的修改时间,这与我的操作系统文件统计信息一致。
  4. 让其他应用程序再次修改该文件。关闭。
  5. 我的应用程序仍会打印旧的修改时间,与我的操作系统文件统计信息不一致。

1 个答案:

答案 0 :(得分:0)

这应该有效,你需要在文件发生变化后再次阅读:

var running = true;
var last = sys.FileSystem.stat("test.txt");
while (running) {
    var now = sys.FileSystem.stat("test.txt");
    if (last.mtime.getTime() != now.mtime.getTime()) {
        last = now;
        trace(sys.io.File.getContent("test.txt"));
    }
}