fs模块 文件写入 之 流式写入

一、流式写入(createWriteStream )与 文件的同步异步写入(writeFile )的区别:

1》程序打开一个文件是需要耗费资源的,流式写入可以减少打开关闭文件的次数

2》文件的流式写入方式适用于大文件写入或者频繁写入的场景。文件的同步异步写入writeFile适用于写入频率较低的场景

二、流式写入

1》可写流语法:fs.createWriteStream(path,[option])

2》流式写入步骤:
(1)导入fs
const fs=require('fs');
(2)创建写入流对象
const ws=fs.createWriteStream('./写入流对象.txt');
(3)绑定事件
// 2.绑定事件,open close error
ws.once('open',()=>{
    console.log('开始写入');
});
ws.once('close',()=>{
    console.log('已写完');
});
ws.once('error',(err)=>{
    console.log(err.message);
})

(4)往文件中写入内容--借助write
// 3.写入数据
ws.write('流式写入1\r\n');
ws.write('流式写入2\r\n');
ws.write('流式写入3\r\n');
(5)关闭通道 (可有可无)
ws.close();

3》输出结果:

三、文件写入总结:

(1)、当需要持久化保存数据时,应想到文件写入

(2)、文件写入应用场景:下载文件、安装软件、保存程序日志如git、编辑器保存文件、视频录制等等

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 Express 中使用 fs 模块储存图片或其他文件非常简单。您可以按照以下步骤进行操作: 1. 首先,您需要使用 Node.js 内置的 fs 模块来读取文件。您可以使用以下代码将文件读入内存中: ```javascript const fs = require('fs'); const fileContent = fs.readFileSync('path/to/file', 'utf8'); ``` 2. 接下来,您需要将文件的内容写入到磁盘上的一个新文件中。您可以使用以下代码进行操作: ```javascript const fs = require('fs'); const fileContent = fs.readFileSync('path/to/file', 'utf8'); fs.writeFileSync('path/to/newfile', fileContent); ``` 请注意,如果您尝试将大型文件写入磁盘,则您可能需要使用流式写入来避免将整个文件读入内存中。您可以使用以下代码进行操作: ```javascript const fs = require('fs'); const readStream = fs.createReadStream('path/to/file'); const writeStream = fs.createWriteStream('path/to/newfile'); readStream.pipe(writeStream); ``` 3. 如果您要处理上传的文件,您可以使用第三方中间件,例如 multer,将文件保存到磁盘上。您可以使用以下代码: ```javascript const multer = require('multer'); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('file'), (req, res) => { // req.file 包含上传的文件信息。 // 将文件保存到磁盘上的特定位置。 const fileContent = fs.readFileSync(req.file.path); fs.writeFileSync('path/to/newfile', fileContent); // 返回响应。 res.send('文件上传成功!'); }); ``` 这是一个基本的示例。您可以根据需要进行更改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想想aw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值