, encoding: | ,表示文件的字符编码,默认'utf8'
mode: ,权限,默认 0o666
flag: ,默认 'w'
callback: ,回调函数只包含错误信息参数(err),在写入失败时返回
如果 data 是一个 ,那么 option 中的 encoding 会被忽略掉,将默认为 'utf8'
示例代码:
var fs = require('fs');
console.log('准备写入文件!');
fs.writeFile('./content.txt', '我是异步写入的文件内容', function(err){
if(err){
console.err(error);
}
console.log('数据写入成功!');
console.log('--------------我是分割线---------------');
console.log('读取写入的数据!');
fs.readFile('./content.txt', function(err, data){
if(err){
console.err(error);
}
console.log('异步读取文件数据:' +data);
})
})
运行结果:

同时,原来的 content.txt 中的内容变为:

fs.appendFile(file, data[, options], callback)
以追加的方式写入文件
示例代码:
var fs = require('fs');
fs.appendFile('./content.txt', '我是被追加写入的数据', function(err){
if(err){
console.log(error);
}
});
fs.readFile('./content.txt', function(err, data){
if(err){
console.log(error);
}
console.log('异步读取文件数据:' +data);
})
运行结果:(在原数据后追加数据,不会覆盖原内容)

4、读取文件
fs.read(fd, buffer, offset, length, position, callback(err, bytesRead, buffer))
从指定的文件描述符 fd 中读取数据并写入 buffer 指向的缓冲区对象
参数:
fd : ,使用 fs.open 打开成功后返回的文件描述符
buffer : | ,一个 buffer 对象,V8引擎分配的一段内存
offset : ,整数,向缓存区中写入时的初识位置,以字节为单位
length : ,整数,读取文件的长度
position : ,整数,读取文件的初识位置;文件大小以字节为单位
如果 position 为 null,将从当前文件指针的位置读取
callback : ,读取执行完成后的回调函数,有三个参数 err, bytesRead, buffer
- err:错误信息
- bytesRead:表示读取的字节数
- buffer:缓冲区对象
示例代码如下:
var fs = require('fs');
var buf = new Buffer(1024);
console.log('准备打开已存在的文件!');
fs.open('./content.txt', 'r+', function(err, fd){
if(err){
console.error(err);
}
console.log('文件打开成功!');
console.log('准备读取文件:');
fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
if(err){
console.error(err);
}
//每一个汉字utf8编码是3个字节
console.log(bytes+ '字节被读取');
//仅输出读取的字节
if(bytes >0){
console.log(buf.slice(0, bytes));
}
})
});
运行结果:

5、打开文件
fs.open(path, flags[, mode], callback(err, fd))
异步的方式打开文件
path: | ,文件的路径
flags: | ,文件打开的行为,具体参考下表
mode: ,设置文件模式(权限),文件创建默认权限为 0666(可读,可写)
callback: ,回调函数,带有两个参数 err 和 fd
flags 参数可以是以下值:

示例代码:以读写模式打开文件 content.txt
var fs = require('fs');
//异步打开文件
console.log('准备打开文件!');
fs.open('./content.txt','r+',function(err, fd){
if(err){
return console.error(err);
}
console.log('文件打开成功!');
});
运行结果:

fs.openSync(path, flags[, mode])
fs.open()
的同步版本,返回一个 代表读取的文件
6、创建目录
fs.mkdir(path[, mode], callback(err))
创建目录
参数:
path : | ,被创建目录的完整路径及目录名
[mode] : ,整数,目录权限,默认 0777
callback : ,创建完目录回调函数,err 错误对象
示例代码:
var fs = require('fs');
console.log('创建目录 /src/test');
fs.mkdir('src/test', function(err){
if(err){
console.error(err);
}
console.log('目录创建成功!');
});
创建前截图:

创建后截图:

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:Node.js初识fs模块-创新互联
路径分享:http://cqcxhl.cn/article/dhjoed.html