使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详

2020-06-17 08:01:28易采站长站整理

console.log(err);//null
console.log(len);//3
console.log(buffer);//<Buffer 61 61 61 00 00>
})
}
});

fs.readSync(fd, buffer, offset, length, position)

fs.read() 的同步版本,返回 bytesRead 的数量


var fs = require('fs');

var fd = fs.openSync('1.txt','r');

var bf = Buffer.alloc(5);

var result = fs.readSync(fd,bf,0,3,null);

console.log(result);//3

3、写入文件 fs.write(fd, buffer, offset, length[, position], callback)

参数如下

fd <Integer>  文件标识

buffer <String> | <Buffer> 要将buffer中的数据写入到文件中

offset <Integer> buffer对象中要写入的数据的起始位置

length <Integer> length是一个整数,指定要写入的字节数

position <Integer> 指定从文件开始写入数据的位置的偏移量。 如果 typeof position !== ‘number’,则数据从当前位置写入

callback <Function> 回调有三个参数(err, written, buffer),其中written指定从buffer写入了多少字节

[注意]多次对同一文件使用fs.write且不等待回调,是不安全的。对于这种情况,强烈推荐使用 fs.createWriteStream

当我们要对打开的文件进行写操作的时候,打开文件的模式应该是读写模式


var fs = require('fs');
fs.open('1.txt','r+',function(err,fd){
if(err){
console.log('文件打开失败');
}else{
var bf = Buffer.from('test');
fs.write(fd,bf,0,3,null,function(err,len,buffer){
console.log(err);//null
console.log(len);//3
console.log(buffer);//<Buffer 74 65 73 74>
})
}
});

fs.write(fd, data[, position[, encoding]], callback)

该方法写入data到fd指定的文件。如果data不是一个Buffer实例,则该值将被强制转换为一个字符串

不同于写入 buffer,该方法整个字符串必须被写入。不能指定子字符串,这是因为结果数据的字节偏移量可能与字符串的偏移量不同

fd  <Integer> 文件标识

data <String> | <Buffer> 要将string或buffer中的数据写入到文件中

position <Integer> 指向从文件开始写入数据的位置的偏移量。 如果 typeof position !== ‘number’,则数据从当前位置写入

encoding <String> 期望的字符串编码

callback <Function> 回调有三个参数(err, written, str),其中written指定从str写入了多少字节


var fs = require('fs');
fs.open('1.txt','r+',function(err,fd){
if(err){
console.log('文件打开失败');
}else{
fs.write(fd,'12345',function(err,len,str){