Node.js中的文件系统

本文详细介绍了Node.js中的文件系统操作,包括同步和异步方式。同步方法会阻塞程序执行,如`fs.writeFileSync()`用于写入文件,而异步方法如`fs.writeFile()`则通过回调函数返回结果,避免阻塞。同步与异步的主要区别在于是否阻塞程序,异步方法适用于大文件处理以防止性能下降。此外,还提到了简单的文件写入和流式写入,后者更适合处理大量数据,以减少内存占用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件系统

        简单来说就是通过 Node 来操作系统中的文件

使用文件系统需要先引入 fs 核心模块

使用时涉及到同步调用异步调用

fs 模块中所有的操作都有两种形式可供选择,即为同步和异步

同步文件系统会阻塞程序的执行【除非操作完毕,否则不会向下执行代码】

异步文件系统不会阻塞程序的执行【在操作完成时,通过回调函数将结果返回】

———————————————————————————————————————————

文件的操作分为 文件的写入文件的读取

同步调用下:

        文件的写入

                 ——操作步骤

                        打开文件

 但是发现没有返回任何东西,但是实际上是有返回值的

新建变量接收它返回的结果

该方法会返回一个文件的描述符作为结果(通常为数字),通过该描述符对文件进行操作

出现描述符后即打开成功,可以看到在文件夹下多出来了个 hello.txt

                        向文件中写入内容

 打开 hello.txt,可以看到成功写入

string 后还有一个参数 position,它所写入的数字代表空几个字符开始书写

【position 参数可选可不选】

hh.writeSync(3,"我是写入的内容......",20);

                        保存并关闭文件

                   服务器是循环且不会关闭的,如果不关闭文件,文件次数庞大后会影响性能

                 其实拢共说下来就四行代码

 ——————————————————————————————————————————

异步调用下:

        文件的写入

                ——操作步骤

                        打开文件

接下来接收返回值

发现返回值为空值 ,想想也是,这种写法就和同步一样了

所以结合

“异步文件系统不会阻塞程序的执行【在操作完成时,通过回调函数将结果返回】”

这句话

得出结论:异步方法不会有返回值,其结果都是通过回调函数返回的

PS: 如果不为 callback参数 传函数则报错

           向文件中写入内容

                                【注释:!err 表示如果该代码段没有错,则正常往里写】

可以看到正常写入了

                        关闭并保存文件

异步调用和同步调用的区别在于:

同步命令比异步多 Sync,异步命令比同步多参数 callback

异步是一把双刃剑,虽然它的操作步骤相对繁琐,但它不会阻塞程序的执行,如果其中的某一步出错也不会影响其他程序的执行

_____________________________________________________________________________

其实上面两种方法用得并不多..........

不过看明白上面就能很好的明白同步和异步的区别

接下来说说常用的

简单文件写入

当然它也分同步和异步

 效果

向其他目录下写

.writeFile("C:/Users/HP/hello异步.txt","我是异步下的writeFile",(err)=>{});

PS:还有 options参数 可设置,方法:{参数:“值”}

options 一般不写,.writeFlie方法已经为我们设置好默认参数了

但是其中向文件中写入内容的方法为覆盖式写法,如果我们想往里追加内容可以使用

.writeFile/.writeFileSync("文件名","文件内容吧",{flag:"a"});

flag具体参数参考下图

 ——————————————————————————————————————————

无论是同步异步还是简单文件都存在一个问题,都不适合大文件写入

【它们都是一次性的将一个内容全部写到文件里,这样就导致在写之前就要将所有要写的都准备好,然后一次性写入,如果文件内容过多的话就会占用内存越多导致对性能损耗很大(性能较差,文件溢出) 】

解决这个问题只需要写入的时候不要一次性写入,,细水长流式慢慢往里加内容就行

简称:流式写入

创建一个可写流

 

 可以为 流 绑定监听事件

​​​​​​​

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值