相关推荐:《node js教程》
看完文件读取再看文件写入非常简单,两者的操作几乎一一对应
fs.writefilefs.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.writefs.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.appendfilefs.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.createwritestreamfs.createwritestream(path[, options]) 用来创建一个可写的文件流,options 和 fs.createreadstream 几乎相同
options(比较常用的有)
fd: 默认值 null,如果指定了 fd,则会忽略 path 参数,使用指定的文件描述符(不会再次触发 open 事件)mode:默认值 0o666autoclose: 默认值: true,当 'error' 或 'finish' 事件时,文件描述符会被自动地关闭start: 开始写入文件的位置,不设置默认覆盖把一个可读流内容写到可写流非常简单
const fs = require('fs');fs.createreadstream('./test.txt') .pipe(fs.createwritestream('./copy.txt'));
关于流的介绍和更多使用在 buffer 和 stream 章节会有详细介绍
更多编程相关知识,请访问:编程教学!!
以上就是谈谈node.js中的文件写入的详细内容。