node中fs模块提供可操作文件的方法有哪些?,nodejs fs读取文件
本文整理记录了Nodejs文件fs模块的一些常用API,以免下次忘记。
node.js速度课程简介:进入学习
同步与异步
fs模块的文件操作一般支持同步和异步API,异步包括回调函数和promsie。同步之后通常是单词sync。[推荐研究:《nodejs 教程》]
打开、关闭文件
fs.open (path: string,callback: (err,FD)=void)用于打开文件,获取文件描述符,并根据获取的文件描述符执行文件操作。Fs.close (fd: number,callback: (err)=void)用于关闭文件。
//打开文件
fs.open(path,(err,fd)={
//对获取的fd进行操作
//关闭文件
fs.close(fd,(err)={
if(err)throw err;
});
})一般在对文件进行多项操作时使用。如果只想读取文件的内容,建议使用fs.readFile
读取文件(目录)
读取文件:fs.readfile(路径:string,callback: (err,data)=void)
fs.readFile(路径,(错误,数据)={
//字符串或缓冲区
console.log(数据)
})读取目录:fs.readdir(路径:string,回调:(err,files: arraystring)=void)
fs.readdir(。/dir ,(错误,文件名)={
console.log(文件名)
})还有另一种方法来读取文件描述符:
fs.read(fd,buffer,offset,length,position,callback:(err,bytesLen,buffer)=void)
//分配长度为10的缓冲区
const buffer=buffer . alloc(10);
//打开文件
fs.open(path,(err,fd)={
//对获取的fd进行操作:将fd对应的文件内容读入缓冲区。
//位置是文件的起点。
//length是读取长度。
//offset是缓冲区的起始位置。
fs.read(fd,buffer,offset,length,position,(err,bytesLen,buffer)={
//buffer是包含读取数据的原始缓冲区对象。
//bytesLen===length;//真
})
//关闭文件
fs.close(fd,(err)={
if(err)throw err;
});
})
写入文件
将数据写入文件,数据可以是字符串或buffer: fs.writefile (path,data,callback: (err)=void)
fs.writeFile(message.txt ,data,(err)={
if(err)throw err;
});还有另一种通过文件描述符fd写文件的方法:
fs.open(path,(err,fd)={
//对获取的fd进行操作:将buffer的内容写入fd对应的文件。
//位置是文件的起点。
//length是要写入的长度
//offset是缓冲区的起始位置。
fs.write(fd,buffer,offset,length,position,(err,bytesWrittenLen,buffer)={
})
//关闭文件
fs.close(fd,(err)={
if(err)throw err;
});
})
删除文件(目录)
删除文件:fs.unlink (path,callback: (err)=void)
删除目录:fs.rmdir(路径,回调:(err)=void)
支持同时删除目录和文件:fs.rm(path,callback:(err)=void)
查看目录(文件)的状态信息
fs.stat(path,(err,stat)={
//stat包含目录或文件的大小、创建时间、更新时间、是目录还是文件等。
//stats.isDirectory()
//stats.isFile()
})
重命名
重命名包括重命名文件和目录
//文件
fs.rename(oldFile.txt , newFile.txt ,(err)={
if(err)throw err;
console.log(重命名完成!);
});
//目录
fs.rename(oldFileDir , newFileDir ,(err)={
if(err)throw err;
console.log(重命名完成!);
});
最后
感谢阅读。如有疑问,欢迎留言讨论。谢谢大家!
有关编程的更多信息,请访问:编程入门!以上是分享Nodejs的一些常用文件fs模块API(总结)的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。