谈谈Node.js中的文件写入


本文摘自PHP中文网,作者青灯夜游,侵删。

本篇文章给大家介绍一下Node.js中的文件写入。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

相关推荐:《node js教程》

看完文件读取再看文件写入非常简单,两者的操作几乎一一对应

fs.writeFile

fs.writeFile(file, data[, options], callback)

  • file:文件名或文件描述符

  • data:常用的主要是 string 和 buffer

  • callback(err)

file 是文件名时,则异步地写入数据到文件,如果文件已存在,则覆盖文件内容

1

2

3

4

5

6

7

const fs = require('fs');

 

const data = Buffer.from('Hello, Node.js');

fs.writeFile('./test.txt', data, err => {

  if (err) throw err;

  console.log('文件已被保存');

});

fs.write

fs.write 有两种重载

  • fs.write(fd, buffer[, offset[, length[, position]]], callback):参数含义和 fs.read 几乎相同

  • fs.write(fd, string[, position[, encoding]], callback):只能把字符串内容全部写入文件

两个的区别就是适用 buffer 可以治写入 buffer 中 offset ~ length + offset 的内容,而使用字符串只能把字符串内容全部写入文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

const fs = require('fs');

 

const data1 = Buffer.from('Hello, Node.js');

const data2 = 'Hello, Node.js';

 

const fd = fs.openSync('./test.txt', 'w');

console.log(fd)

 

fs.write(fd, data1, err => {

  if (err) throw err;

  console.log('data1 已被写入');

});

 

fs.write(fd, data2, err => {

  if (err) throw err;

  console.log('data2 已被写入');

});

 

setTimeout(() => {

  fs.close(fd, console.log);

}, 100);

fs.appendFile

fs.appendFile(path, data[, options], callback) 将数据追加到文件尾部,如果文件不存在则创建该文件

1

2

3

4

5

6

7

8

9

10

const fs = require('fs/promises');

 

const data1 = Buffer.from('Hello,');

const data2 = Buffer.from(' Node.js');

 

fs.appendFile('./test.txt', data1)

  .then(() => {

    fs.appendFile('./test.txt', data2);

    console.log('文件内容追加完成');

  });

fs.createWriteStream

fs.createWriteStream(path[, options]) 用来创建一个可写的文件流,options 和 fs.createReadStream 几乎相同
options(比较常用的有)

  • fd: 默认值 null,如果指定了 fd,则会忽略 path 参数,使用指定的文件描述符(不会再次触发 open 事件)
  • mode:默认值 0o666
  • autoClose: 默认值: true,当 'error' 或 'finish' 事件时,文件描述符会被自动地关闭
  • start: 开始写入文件的位置,不设置默认覆盖

把一个可读流内容写到可写流非常简单

1

2

3

4

const fs = require('fs');

 

fs.createReadStream('./test.txt')

  .pipe(fs.createWriteStream('./copy.txt'));

关于流的介绍和更多使用在 Buffer 和 Stream 章节会有详细介绍

更多编程相关知识,请访问:编程教学!!

以上就是谈谈Node.js中的文件写入的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

mac和windows下如何使用nvm安装和管理多个版本的node.js

node.js是什么?优势是什么?

node.js爬取豆瓣数据实例

node.js搭建web服务器的方法

了解node.js中的模块系统

深入了解node.js 中的多线程和多进程

如何使用ppa在ubuntu上安装最新的node.js和npm

node.js和vue.js什么关系

详解主动终止node.js进程的几种方法

node.js真的单线程吗?进程间如何通信?

更多相关阅读请进入《node.js》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...