谈谈Node.js中的文件写入
相关引荐:《node js教程》
看完文件读取再看文件写入非常简便,两者的操纵几乎一一对应
fs.writeFile
fs.writeFile(file, data[, options], callback)
file:文件名或文件描写符
data:常用的主如果 string 和 buffer
callback(err)
当 file
是文件名时,则异步地写入数据到文件,假如文件已存在,则覆盖文件内容
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
的内容,而使用字符串只能把字符串内容全部写入文件
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)
将数据追加到文件尾部,假如文件不存在则创立该文件
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: 开端写入文件的位置,不设定默许覆盖
把一个可读流内容写到可写流非常简便
const fs = require('fs'); fs.createReadStream('./test.txt') .pipe(fs.createWriteStream('./copy.txt'));
关于流的介绍和更多使用在 Buffer 和 Stream 章节会有具体介绍