最近在学习nodeJS, 其能够操作文件的功能也是颇为强大,现在总结一下,常用的API。内容参考与官网api https://nodejs.org/api/fs.html
1. 总体说明。
file system 提供了异步和同步的文件操作形式。
如果用了异步形式,那么异步的文件操作函数都会有回调函数作为最后的参数。而传给回调函数的参数随fs函数的不同而不同,但是第一个参数总是err,如果文件操作没有问题,那么err为null 或者 undefined。
如果用了同步,会立即抛出异常,可以用try/catch来捕获处理异常。
2. fs模块提供的操作主要有三类。
a 文件操作,直接操作文件
b 文件属性读写
c 底层文件操作,可以规定从什么地方开始读取文件。一般来说不用这个,因为它要求手动管理缓冲区与文件指针,这个是不好判断的。
a:文件操作常用
fs.rename(oldPath, newPath, callback) 重命名对应的同步操作:fs.renameSync(path1,path2)
fs.ftruncate(fd, len, callback)截断文件fd,只保留len长度内的字符,超出部分被清除
fs.truncate(path, len, callback) 这里是路径,上面是file descriptor。
fs.unlink(path, callback)可以删除文件或链接
fs.mkdir(path[, options], callback) 创建文件夹,及对应权限
fs.rmdir(path, callback) 删除文件夹。
fs.readdir(path, callback)读取目录中的内容。回调函数接受两个参数(err, files)
,其中files
参数是保存了目录中所有文件名的数组('.'
和'..'
除外)。
fs.readFile(file[,options], callback)读取文件,options一般是文件编码‘utf-8’ 。callback的参数有两个,err,data。data就是文件内容
<span style="font-size:12px;">function readFile(){
console.log('--------开始读取文件--------');
var fs = require('fs');
fs.readFile('test.txt', 'utf-8', function(err, data) {
if (err) {
console.log("读取失败");
} else {
console.log(data);
return data;
}
});
console.log('--------读取结束--------');
}
readFile();</span>
fs.writeFile(file,data[,options],callback) 写文件。file:字符串代表文件名,或者file descriptor。data:字符串|Buffer。options:编码模式(utf8),或者文件读写权限(438),或者flag(w)
fs.appendFile(file, data[,options], callback) 将data加到file最后面。例子:
<span style="font-size:12px;">fs.appendFile('message.txt', 'data to append', function (err) {
if (err) throw err;
console.log('The "data to append" was appended to file!');
});</span>