您好,欢迎访问一九零五行业门户网

分享一些Nodejs常用文件fs模块API(总结)

本篇文章整理记录了工作中常用的一些nodejs文件fs模块api,免的下次又忘了。
作为一个web开发工程师,免不了跟nodejs打交道,其中的fs模块非常有用,可以执行一些文件相关的操作,可总是记了忘、忘了记。今天打算再整理记录一下,免的下次又忘了。
同步与异步fs模块的文件操作一般支持同步和异步两种api,异步又包括了回调函数和promsie的形式。同步一般后面带sync字样。【推荐学习:《nodejs 教程》】
打开、关闭文件fs.open(path:string,callback:(err,fd)=>void)用于打开文件,获取文件描述符(file descriptor),基于拿到的文件描述符做文件操作。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(path:string,callback:(err,data)=>void)
fs.readfile(path,(err,data)=>{ //string或者buffer console.log(data)})
读取目录:fs.readdir(path:string,callback:(err,files:array<string>)=>void)
fs.readdir("./dir",(err,filenames)=>{ console.log(filenames)})
还有一种方式通过文件描述符来读取:
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对应的文件内容读取到buffer里 //position为文件的起点 //length为读取的长度 //offset为缓存区起读的位置 fs.read(fd,buffer,offset,length,position,(err,byteslen,buffer)=>{ //buffer为包含读到数据的原始buffer对象 //byteslen === length;// true }) //关闭文件 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对应的文件里 //position为文件的起点 //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(path,callback:(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('rename complete!');});//目录fs.rename('oldfiledir', 'newfiledir', (err) => { if (err) throw err; console.log('rename complete!');});
最后感谢阅读,如果有任何的问题欢迎留言讨论,谢谢!
更多编程相关知识,请访问:编程入门!!
以上就是分享一些nodejs常用文件fs模块api(总结)的详细内容。
其它类似信息

推荐信息