本文实例讲述了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('');相对底层的接口









