node.js文件操作系统实例详解

2020-06-17 05:35:11易采站长站整理

本文实例讲述了node.js文件操作。分享给大家供大家参考,具体如下:

文件读取

普通读取

同步读取


var fs = require('fs');
var data;
try{
data = fs.readFileSync('./fileForRead.txt', 'utf8');
console.log('文件内容: ' + data);
}catch(err){
console.error('读取文件出错: ' + err.message);
}

输出如下:

/usr/local/bin/node readFileSync.js
文件内容: hello world

异步读取


var fs = require('fs');
fs.readFile('./fileForRead.txt', 'utf8', function(err, data){
if(err){
return console.error('读取文件出错: ' + err.message);
}
console.log('文件内容: ' + data);
});

输出如下

/usr/local/bin/node readFile.js
文件内容: hello world

通过文件流读取

适合读取大文件


var fs = require('fs');
var readStream = fs.createReadStream('./fileForRead.txt', 'utf8');
readStream
.on('data', function(chunk) {
console.log('读取数据: ' + chunk);
})
.on('error', function(err){
console.log('出错: ' + err.message);
})
.on('end', function(){ // 没有数据了
console.log('没有数据了');
})
.on('close', function(){ // 已经关闭,不会再有事件抛出
console.log('已经关闭');
});

输出如下

/usr/local/bin/node createReadStream.js
读取数据: hello world
没有数据了
已经关闭

文件写入

备注:以下代码,如果文件不存在,则创建文件;如果文件存在,则覆盖文件内容;

异步写入


var fs = require('fs');
fs.writeFile('./fileForWrite.txt', 'hello world', 'utf8', function(err){
if(err) throw err;
console.log('文件写入成功');
});

同步写入


var fs = require('fs');
try{
fs.writeFileSync('./fileForWrite1.txt', 'hello world', 'utf8');
console.log('文件写入成功');
}catch(err){
throw err;
}

通过文件流写入


var fs = require('fs');
var writeStream = fs.createWriteStream('./fileForWrite1.txt', 'utf8');
writeStream
.on('close', function(){ // 已经关闭,不会再有事件抛出
console.log('已经关闭');
});
writeStream.write('hello');
writeStream.write('world');
writeStream.end('');

相对底层的接口