文件I/O是NodeJS的核心模块之一,主要岁文件进行读写操作。fs对文件的加载分为两种:同步和异步
var fs = require('fs');
fs.unlinkSync('/targetUrl');
var fs require('fs');
fs.unlink('/targetUrl',function(err) {
if(err) {
throw err;
}
});
var fs = require('fs');
fs.readFile('test.txt','utf-8',function(err,data) {
if(err) {
throw err;
} else {
console.log(data);
}
});
console.log('异步加载');
运行结果为: 异步加载
data of test.txt
如果是同步执行,那么执行结果的顺序应该是相反的。
1.eadFile读取文件
fs.readFile(fileName[,options],callback);
fileName为要读取的文件名称;
options是可选参数,是一个对象格式,用于指定文件编码(encoding)和操作方式(flag,例如:r代表读取文件,w代表写入文件,a代表追加文件)
fs.readFile('/test.txt','utf-8',function(err,data) {
//或者{encoding:'utf-8'}
if(err) {
console.log(err);
}
console.log(data);
});
2.writeFile写入文件
writeFile与readFile差不多,语法规则为
fs.writeFile(fileName,data[,options],callback);
其中,data为写入文件的数据内容,callback为写入后的回调函数。
以追加的方式写入文件
fs.writeFile('/rest.txt','data add to file',{'flag': 'a'},function(err) {
if(err) {
console.log(new Error('error'));
}
});
对写入的文件进行读取
fs.readFile('/test.txt','utf-8',function(err,data) {
if(err) {
console.log(new Error('read err'));
}
console.log(data);
});
3.read和write读写文件
除了使用readFile和writeFile读写文件之外,还可以使用read和write来对文件进行读写操作。
fs.open(path,flag[,mode],callback)
path是文件路径;
flags是打开文件的方式;可以是:
r:只读方式打开文档
r+:读写方式打开文档
rs:同步模式下,以只读方式打开文档
mode:文件权限(该文件已经存在的条件下),默认值为“0666”,即有可读写功能。
fs.close(fd[,callback])
fd为所打开文件的描述符
fs.read(fd,buffer,offset,length,position,callback)
fd:文件描述符,必须接收fs.open()方法中的回调函数所返回的第二个参数;
buffer:存放读取到的数据的Buffer对象;
offset:指定向buffer中存放数据的起始位置;
length:指定读取文件的字节数;
position:指定在文件中读取内容的起始位置;
callback:回调函数
fs.open('/test.txt','r'.function(err,fd) {
if(err) {
throw err;
}
var buffer = new Buffer(255);
//读取文件
fs.read(fd,buffer,0,10,0,function(err,byteRead,buffer) {
if(err) {
throw err;
}
console.log(byteRead,buffer.slice(0,byteRead).toString());
fs.close(fd); //关闭文件
});
});
callback回调函数的参数:
err:异常
byteRead:是从文件中读取内容的实际字节数;
buffer:被读取的缓存区对象;
fs.write(fd,buffer,offset,length,position,callback);
基本参数与read()函数差不多,其中,buffer为要写进文件的内容
fs.open('/test.txt','r'.function(err,fd) {
if(err) {
throw err;
}
var buffer = new Buffer('the information add into file');
//读取文件
fs.write(fd,buffer,0,10,0,function(err,byteRead,buffer) {
if(err) {
throw err;
}
console.log(byteRead,buffer.slice(0,byteRead).toString());
fs.close(fd); //关闭文件
});
});
fs.appendFile('test.txt','data to addto file',function(err) {
if(err) {
throw err;
}
});
参考文章:汇智网-Node.js入门