我是靠谱客的博主 迷人棒球,这篇文章主要介绍分享一些Nodejs常用文件fs模块API(总结),现在分享给大家,希望可以做个参考。

本篇文章整理记录了工作中常用的一些Nodejs文件fs模块API,免的下次又忘了。

同步与异步

fs模块的文件操作一般支持同步和异步两种API,异步又包括了回调函数和promsie的形式。同步一般后面带sync字样。【推荐学习:《nodejs 教程》】

打开、关闭文件

fs.open(path:string,callback:(err,fd)=>void)用于打开文件,获取文件描述符(file descriptor),基于拿到的文件描述符做文件操作。fs.close(fd:number,callback:(err)=>void)用于关闭文件

复制代码
1
2
3
4
5
6
7
8
9
//打开文件 fs.open(path,(err,fd)=>{ //针对拿到的fd 进行操作 //关闭文件 fs.close(fd, (err) => { if (err) throw err; }); })
登录后复制

一般用于对文件做多种操作时使用。如果你仅仅想读取文件的内容建议用fs.readFile

读取文件(目录)

读取文件:fs.readFile(path:string,callback:(err,data)=>void)

复制代码
1
2
3
4
fs.readFile(path,(err,data)=>{ //string或者buffer console.log(data) })
登录后复制

读取目录:fs.readdir(path:string,callback:(err,files:Array<string>)=>void)

复制代码
1
2
3
fs.readdir("./dir",(err,fileNames)=>{ console.log(fileNames) })
登录后复制

还有一种方式通过文件描述符来读取:

fs.read(fd,buffer,offset,length,position,callback:(err,bytesLen,buffer)=>void)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//分配一块长度为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)

复制代码
1
2
3
fs.writeFile('message.txt', data, (err) => { if (err) throw err; });
登录后复制

还有另一种方式,通过文件描述符fd来写文件:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
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)

查看目录(文件)的状态信息

复制代码
1
2
3
4
5
fs.stat(path,(err,stat)=>{ //stat包含了该目录或文件的大小、创建时间、更新时间,是目录还是文件等 //stats.isDirectory() //stats.isFile() })
登录后复制

重命名

重命名包括重命名文件和目录

复制代码
1
2
3
4
5
6
7
8
9
10
//文件 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(总结)的全部内容,更多相关分享一些Nodejs常用文件fs模块API(总结)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部