node 读文件
异步读取
/**
* @param {string} path
* @param {string} ecoding
* @param function
* @return void
*/
fs.readFile('1.js','ut8',(err,data)=>{
console.log(data)
})
同步
/**
* @param {string} path
* @param {string} ecoding
* @return void
*/
fs.readFileSync('1.js','ut8');
node 写文件
同步写
/**
* @param {string} path
* @param {Buffer} any
* @param {Object} flag
* @return void
*/
fs.writeFileSync('1.js',buffer,flag);
异步写文件
/**
* @param {string} path
* @param {Buffer} any
* @param {Object} flag
* @param {function}
* @return void
*/
fs.writeFile('1.js',buffer,{ecoding:'utf8',mode:'0o666'},(err,data)=>{
console.log(data)
})
打开文件
/**
* @param {string} path
* @param {string} flag // 用什么方式打击开文件
* @param {string} mode // 操作权限
* @param {function}
* @return void
*/
fs.open(path,flag,mode,callback)
向文件中写入内容
// fd, 使用fs.open打开成功后返回的文件描述符
// offset, 整数,从缓存区中读取时的初始位置,以字节为单位
// length, 整数,从缓存区中读取数据的字节数
// position, 整数,写入文件初始位置;
fs.open('1.js','w',(err,wfd)=>{
// 申请一段内存
let buffer = Buffer.from('帅比');
// fd buffer offset
let offset =0;
let length =6;
let position=0
fs.write(wfd,buffer,offset,length,position,cb )
// fs.fsync() //更新内存
})
文件拷贝
function copy(source,target){
const BUFFER_SIZE=3;
const position =0;
fs.open(source,'r',(err,rfd)=>{
fs.open(target,'w',(err,wfd)=>{
let buffer = Buffer.alloc(3);
function next(){
fs.read(rfd,buffer,0,BUFFER_SIZE,position,(err,byteRead)=>{
position =position+byteRead
if(byteRead>0){
fs.write(wfd,byteRead,0,null,()=>{
next()
})
}else{
fs.close(rfd,()=>{});
fs.fsync(wfd,()=>{});
}
})
}
})
})
}
copy('1.js','2.js')