需求问题
在使用nodejs开发项目的过程中,有一个需求需要实时监控指定文件的变更并按行读取最新的文件内容,在nodejs中有相应地API么?具体怎么使用呢~~~
fs.watchFile-实时监控文件变化
nodejs的fs模块提供了watchFile方法,在文件内容每次发生变化时就触发相应回调函数。回调函数提供2个参数-当前的文件状态对象fs.state和文件发生变化时的文件状态fs.state,比较2者的最后修改时间就能知道文件内容是否发生过变化。unwatchfile取消对指定文件的监控
fs.read/fs.createReadStream-读取文件内容
在nodejs中读取文件内容最基本的API为fs.read,也可以通过创建一个文件流,监听data/end事件读取文件内容
-
fs.read方法可以自由的控制要读取多少内容从那个位置读取,对于一个大文件来说需要反复调用才能获取全部内容。
fs.read(fd, buffer, offset, length, position, callback)
fd为打开的文件描述符,也就数文件对象
buffer指定此次read操作读取的数据写入的缓存区对象
offset读取的数据从缓冲区对象的哪个位置开始写入
length此次read操作想要读取的数据长度
position指定从fd的哪个位置开始读取数据,指定为null,那么数据此文件的当前位置开始读取
callback 函数提供3个参数err、bytesRead,buffer-是否发生了错误,本地读到的字节长度,保存读到的数据的缓冲区