读取文件夹中的几个txt文件的行,并创建一个包含所有文本行的文本文件

时间:2017-05-22 18:01:19

标签: javascript node.js

读取文件夹内的几个txt文件的行,并创建包含所有文本行的单个文本文件。这是一个我工作的例子,但是只读取一个特定的文件,然后我用该文件中包含的文本行创建一个文件。

const testFolder = './txt_files/';
const fs = require('fs');

fs.readdir(testFolder, (err, files) => {
	files.forEach(file => {
    console.log(file);
  });
})

fs.readFile('txt_files/url-list1.txt', 'utf8', function(err, data) {  
    if (err) throw err;
    console.log(data);

    fs.writeFile('txt_files/test.txt', data, function(err) {
	    if(err) {
	        return console.log(err);
	    }
	    console.log("El archivo con todas las url se guardó!");
	}); 
});

此示例有效。它从'txt_files'文件夹中读取单个文件,并使用提取的文本行创建一个新的txt。我想要做的是读取该文件夹中的所有文件,并创建一个包含所有文本行的新文件。 请帮帮我!

2 个答案:

答案 0 :(得分:0)

const testFolder = './txt_files/';
const fs = require('fs');

fs.readdir(testFolder, (err, files) => {
    files.forEach(file => {
    console.log(file);
            fs.readFile(testFolder+file, 'utf8', function(err, data) {  
                if (err) throw err;
                console.log(data);
                fs.appendFile('txt_files/test.txt', data+"\n", function(err) {
                if(err) {
                    return console.log(err);
                }
                console.log("El archivo con todas las url se guardó!");
}); 

        });
    });

});

答案 1 :(得分:0)

所以,使用你已经提供的东西,这就是我提出的。 FS有一个名为appendFile的函数,如果文件不存在则会创建该文件,然后将数据附加到文件的EOF中。 阅读有关函数here

的更多信息

我添加了TXT扩展检查,因此这只会附加实际文本文件中的数据。



const testFolder = './txt_files/';
const fs = require('fs');

fs.readdir(testFolder, (err, files) => {
    files.forEach(file => {
        // only match TXT Files
        if (file.substring(file.length - 4, file.length) == ".txt"){
            fs.readfile(testFolder+file, 'utf8', (err, data) => {
                fs.appendFile(testFolder+'allfiles.txt', data+"\n", function (err) {
                    if (err) throw err;
                });
            });
        }
  });
});