推荐答案
使用 fs.readFile 和 fs.writeFile 读取和写入文件
// www.javascriptcn.com code example
const fs = require('fs');
// 读取文件
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error('读取文件出错:', err);
return;
}
console.log('文件内容:', data);
// 写入文件
fs.writeFile('output.txt', data, 'utf8', (err) => {
if (err) {
console.error('写入文件出错:', err);
return;
}
console.log('文件写入成功');
});
});使用 fs.createReadStream 和 fs.createWriteStream 读取和写入文件
// www.javascriptcn.com code example
const fs = require('fs');
// 创建可读流
const readStream = fs.createReadStream('example.txt', 'utf8');
// 创建可写流
const writeStream = fs.createWriteStream('output.txt', 'utf8');
// 通过管道将可读流的数据传输到可写流
readStream.pipe(writeStream);
// 监听可读流的 'end' 事件
readStream.on('end', () => {
console.log('文件读取完成');
});
// 监听可写流的 'finish' 事件
writeStream.on('finish', () => {
console.log('文件写入完成');
});本题详细解读
fs.readFile 和 fs.writeFile
fs.readFile(path[, options], callback): 用于异步读取文件内容。path是文件路径,options可以是字符串(指定编码)或对象(包含编码等选项),callback是回调函数,接收错误和文件内容作为参数。fs.writeFile(file, data[, options], callback): 用于异步写入文件内容。file是文件路径,data是要写入的数据,options可以是字符串(指定编码)或对象(包含编码等选项),callback是回调函数,接收错误作为参数。
fs.createReadStream 和 fs.createWriteStream
fs.createReadStream(path[, options]): 创建一个可读流,用于读取大文件或需要流式处理的数据。path是文件路径,options可以是对象,包含编码、缓冲区大小等选项。fs.createWriteStream(path[, options]): 创建一个可写流,用于写入大文件或需要流式处理的数据。path是文件路径,options可以是对象,包含编码、缓冲区大小等选项。readStream.pipe(writeStream): 通过管道将可读流的数据传输到可写流,适用于处理大文件或需要流式处理的场景。事件监听:
readStream.on('end', callback): 监听可读流的end事件,当数据读取完成时触发。writeStream.on('finish', callback): 监听可写流的finish事件,当数据写入完成时触发。