Node.js 如何在node js中读写多个文本文件
在下面的代码中,我可以读取Node.js 如何在node js中读写多个文本文件,node.js,Node.js,在下面的代码中,我可以读取file1.txt数据并将其写入file2.txt,但我想读取file1、file2、file3和file4,然后将所有这些数据写入file5.txt。怎么做?谁能编辑下面的代码,因为我是初学者 var fs = require("fs"); fs.readFile('file1.txt',function(err, data){ fs.writeFile('file2.txt', data) }); 一种方法是嵌套多个readfi
file1.txt
数据并将其写入file2.txt
,但我想读取file1、file2、file3和file4,然后将所有这些数据写入file5.txt
。怎么做?谁能编辑下面的代码,因为我是初学者
var fs = require("fs");
fs.readFile('file1.txt',function(err, data){
fs.writeFile('file2.txt', data)
});
一种方法是嵌套多个readfile,然后将writeFile嵌套在其中。大概是这样的:
var fs = require("fs");
fs.readFile('file1.txt',function(err1, data1){
fs.readFile('file2.txt',function(err2, data2){
fs.readFile('file3.txt',function(err3, data3){
if(err1 || err2 || err3){
throw new Error();
}
let data = data1+data2+data3;
fs.writeFile('file4.txt', data);
});
});
});
实现这一点的另一种方法是使用或类似的promise库
var fs = require('fs');
var Promise = require('bluebird');
var readFile = Promise.promisify(fs.readFile);
var writeFile = Promise.promisify(fs.writeFile);
var promiseArray = [readFile('file1.txt'), readFile('file2.txt'), readFile('file3.txt')];
Promise.all(promiseArray).then((dataArray)=>{
var data = '';
for(var i=0;i<dataArray.length;i++){
data += dataArray[i];
}
return writeFile('file4.txt', data);
});
var fs=require('fs');
风险值承诺=要求(“蓝鸟”);
var readFile=Promise.promisify(fs.readFile);
var writeFile=promisify.promisify(fs.writeFile);
var promiseArray=[readFile('file1.txt')、readFile('file2.txt')、readFile('file3.txt');
Promise.all(promiseArray).then((dataArray)=>{
var数据=“”;
对于(var i=0;i我将为此选择promise库。使您的对象成为表
可提高代码可读性并防止代码在右侧增长。我的解决方案与其他解决方案几乎相同,只是我使用nodejs Buffer连接其他文件的数据
const fs = require('fs')
const file1 = 'a.txt'
const file2 = 'b.txt'
const allPromises = [file1, file2].map(eachFile => {
return new Promise((resolve, reject) => {
fs.readFile(eachFile, (err, data) => {
if(err) {
reject(err)
}else {
resolve(data)
}
})
})
})
Promise.all(allPromises).then(onfulfilled => {
const totalBufferContent = Buffer.concat(onfulfilled)
fs.writeFile('c.txt', totalBufferContent, (err) => {
if(err) throw err;
console.log('Done')
})
})
我发现的最简单的解决方案是安装concat包——它将为您完成所有的工作:)请注意,writeFile
已被弃用于writeFileSync
(code[DEP0013])
首先安装软件包
npm install concat
然后编码
const concat = require('concat'); //Or use ES6 Syntax
const fs = require('fs');
concat(['1.txt', '2.txt', '3.txt']).then(files_being_written =>
fs.writeFileSync('your-concated-file.txt', files_being_written))
// or this way
// concat(['1.txt', '2.txt', '3.txt'], 'your-concated-file.txt')
资料来源:
类似这样的东西?谢谢,它帮助我和另一个人思考如何在嵌套中创建文件1、文件2、文件3