【管子先生的Node之旅·16】深入探究下Node的FS模块

fs 模块允许你通过 Stream Api 来对数据进行读写操作。与 readFilewriteFile 方法不同的是,他对内存的分类不是一次性的,也就是说可以分块上传,这对上传一些大文件来说很方便的。

//引入fs模块
var fs = require('fs');
//使用createReadStream来接受文件
var stream = fs.createReadStream('./cli.js');
//处理数据
stream.on('data', function(chunk) {
    console.log('处理文件');
    console.log(chunk);
});
//接收完成
stream.on('end', function() {
    console.log('数据接收完毕');
});

运行结果:

image.png

注:列如在写如系统文件的时候也可使用 fs.WriteStream来实现,这样可以实现打开一次文件长时间写入。

监听

Node 允许监听文件或者目录是否发生变化,当有文件或文件夹发生变化,会分发一个事件,然后触发指定函数。下面我们来做一个监听 css 文件的监听。

//引入fs
var fs = require('fs');
//获取当前目录所有文件
var files = fs.readdirSync(process.cwd());
files.forEach(function(fileName) {
    //过滤css
    if (/\.css/.test(fileName)) {
        //监听css文件
        fs.watchFile(process.cwd() + '\\' + fileName, function() {
            console.log('当前发生改变的CSS文件有:' + fileName);
        })
    }
});

执行结果:


image.png

除了 fs.watchFile 之外 , 还可以使用 fs.watch 来监听整个目录。

你可能感兴趣的:(【管子先生的Node之旅·16】深入探究下Node的FS模块)