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