写一个Node.js程序,读取data文件夹中的所有.txt文件,将它们的内容合并到一个文件combined.txt中。使用fs模块和path模块中的函数实现。
时间: 2024-05-01 13:16:49 浏览: 171
Node.js中读取TXT文件内容fs.readFile()用法
```
const fs = require('fs');
const path = require('path');
const dataFolderPath = path.join(__dirname, 'data');
fs.readdir(dataFolderPath, (err, files) => {
if (err) {
console.error(err);
return;
}
const txtFiles = files.filter(file => path.extname(file) === '.txt');
const combinedFilePath = path.join(__dirname, 'combined.txt');
fs.writeFile(combinedFilePath, '', err => {
if (err) {
console.error(err);
return;
}
txtFiles.forEach(txtFile => {
const txtFilePath = path.join(dataFolderPath, txtFile);
fs.readFile(txtFilePath, 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
fs.appendFile(combinedFilePath, data, err => {
if (err) {
console.error(err);
return;
}
});
});
});
});
});
```
代码说明:
1. 首先使用fs模块的readdir函数读取data文件夹中的所有文件名。
2. 使用path模块的extname函数过滤出所有扩展名为.txt的文件。
3. 指定合并后的文件路径为当前文件夹下的combined.txt。
4. 使用fs模块的writeFile函数创建空的合并文件。
5. 对于每个txt文件,使用fs模块的readFile函数读取其内容,并使用fs模块的appendFile函数将其追加到合并文件中。注意,使用appendFile而不是writeFile是因为我们需要将多个文件的内容追加到同一个文件中。
阅读全文