‘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){









