文件的I/O是由标准的POSIX函数封装二成的。需要使用require(‘fs’)访问这个模块。
所有的方法都提供了异步和同步两种方式。
1、fs.rename(path1, path2, [callback]) :
这个API的主要功能就是重命名某个文件。例如:
var fs = require('fs');
var root = __dirname;
fs.rename(root + 'oldername.txt', root + 'newname.txt', function() {
if (err) throw err;
console.log('rename complete');
});
执行完之后,本地的oldername.txt
就被重命名为newname.txt
了。
对应的同步函数是fs.rename(path1, path2), 两者的作用和调用都相同,但是其接口是一个同步接口,因此,调用方式有所区别。
2、fs.chmod(path, mode, [callback])
该API的作用是修改文件权限。
var fs = require('fs');
var root = __dirname;
fs.chmod(root + '/duang.txt', '666', function( err ) {
if (err) throw err;
console.log('chmod complete');
});
代码执行前,文件duang.txt的权限不是666。但是当脚本执行完之后该文件的权限就被修改为666了。
对应同步调用接口为: fs.chmodSync( path, mode );
3、fs.stat( path, [callback])
fs.stat(path, [callback])的作用就是读取文件的元信息,回调函数将返回两个参数(err, stats), 其中stats是fs.Stats的一个对象。
var fs = require('fs');
var root = __dirname;
fs.stat(root + '/duang.txt', '666', function( err, stats ) {
if (err) throw err;
console.log( stats );
});
fs.stat的同步调用方法为fs.statSync( path )。
4、fs.readFile(path, [callback])
fs.readFile(path, [callback]) ;的主要作用是解析读取文件数据。
它的同步接口是fs.readFileSync( path )。
5、fs.exists(path, [callback])
这个API的作用是判断文件是否存在。下面是一段示例代码。
var fs = require('fs');
var root = __dirname;
/* 判断文件是否存在 */
fs.exists(root + '/duang.txt', function( exists ) {
if ( !exists ) {
// you code here...
} else {
// code....
}
});
6、fs.unlink(path, [callback])
这个API的作用是删除一个文件。例如:
var fs = require('fs');
var root = __dirname;
fs.stat(root + '/duang.txt, function( err ) {
if (err) throw err;
});
7、fs.write(fd, buffer, length, position, [callback])
该API是将buffer缓冲器内容写入fd文件。
position : 指明将数据写入文件从头部算起的偏移位置。如果把pisition设置为null, 那么数据将从当前位置开始写入。
callback : 接受两个参数(err, written), 其中written标识有多少字节的数据已经写入。
buffer这个参数可以通过Node.js Buffer API的new Buffer创建。
8、fs.read(fd, buffer, length, position, [callback])
该API从fd文件中中读取数据。
buffer : 为写入数据的缓冲器。
offset : 为写入到缓冲器的偏移地址。
length : 指明了欲读取的数据字节数。
position : 为一个整数变量,标识从哪个位置开始读取文件。如果pisition的参数为null,数据将从文件的当前位置开始读取。
callback : 接受两个参数(err, bytesRead), bytesRead是用来标识多少个字节被读取。
buffer这个参数可以通过Node.js Buffer API的new Buffer创建。