所以这是我的问题。程序将日志文件写入特定文件夹。创建日志文件后,它大约每 2 秒写入一次,直到达到大约 5MB。然后创建一个新文件。我是 Parsi g 日志文件以实时收集数据。
我正在使用目录监视器来监听目录的更改。当检测到更改时,我可以比较 NSfilemodocation 日期以获取要监视的最新文件名。
然后我使用该文件名创建一个 NSinput 流。我创建我的缓冲区,然后打开流并检查它是否“hasBytesAvail”并开始解析。
我的问题是:我正在到达文件的末尾,并且正在调用 EventEndOfStream ,这会破坏我的流。
我有两个选择:
保持字节读取变量当前,直到创建新文件。这意味着每 2 秒我需要一遍又一遍地重新创建流,这似乎是一种浪费。
只要当前文件是目录中的最新文件,就防止关闭流。这听起来很简单,但为了做到这一点,我必须读到文件的末尾,这也会触发流被关闭和释放。
用最简单的术语来说,我想监视一个文件夹以获取要监视的文件的名称。然后监视文件并仅读取自上次读取以来的新字节。没有不必要的 NSInputstream 实例。
有没有人有什么建议?