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

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

‘wx+’ – 类似 ‘w+’,但如果 path 存在,则失败。

‘a’ – 以追加模式打开文件。如果文件不存在,则会被创建。

‘ax’ – 类似于 ‘a’,但如果 path 存在,则失败。

‘a+’ – 以读取和追加模式打开文件。如果文件不存在,则会被创建。

‘ax+’ – 类似于 ‘a+’,但如果 path 存在,则失败。

[注意]使用’rs+’模式不会使fs.open()进入同步阻塞调用。如果那是你想要的,则应该使用fs.openSync()


var fs = require('fs');

fs.open('a.txt','r',function(err,fs){

console.log(err);//null

console.log(fs);//3

})


var fs = require('fs');
fs.open('b.txt','r',function(err,fs){
/*
{ Error: ENOENT: no such file or directory, open 'D:projectb.txt'
at Error (native)
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'D:projectb.txt' }
*/
console.log(err);
console.log(fs);//undefined
})

文件的回调函数中的第二个参数fd代表文件标识,与定时器标识类似,用于标识文件,且随着文件的打开顺序递增


var fs = require('fs');

fs.open('1.txt','r',function(err,fs){

console.log(fs);//3

})

fs.open('2.txt','r',function(err,fs){

console.log(fs);//4

})


fs.openSync(path, flags[, mode])

fs.open() 的同步版本。 返回一个表示文件描述符的整数


var fs = require('fs');

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

console.log(result);//3

2、读取文件 fs.read(fd, buffer, offset, length, position, callback)

参数如下:

fd <Integer> 通过 fs.open() 方法返回的文件描述符

buffer <String> | <Buffer> 数据将被写入到buffer

offset <Integer> buffer中开始写入的偏移量

length <Integer> 指定要读取的字节数(整数)

position <Integer> 指定从文件中开始读取的位置(整数)。 如果position为null,则数据从当前文件位置开始读取

callback <Function> 回调有三个参数 (err, bytesRead, buffer)。err为错误信息,bytesRead表示读取的字节数,buffer为缓冲区对象

由于使用read()方法,会将文件内容读取buffer对象中,所以需要提前先准备一个buffer对象


var fs = require('fs');
fs.open('1.txt','r',function(err,fd){
if(err){
console.log('文件打开失败');
}else{
var bf = Buffer.alloc(5);
fs.read(fd,bf,0,3,null,function(err,len,buffer){