Tag: 文件处理

Nodejs读取非常大的文件(〜10GB),逐行处理然后写入其他文件

我有一个特殊格式的10 GB日志文件,我想逐行处理这个文件 ,然后在输出一些转换之后把输出写到其他文件中 。 我正在使用节点进行此操作。 虽然这个方法很好,但是这样做需要很多时间。 我可以在JAVA 30-45分钟内做到这一点,但是在节点上做同样的工作需要160分钟以上。 以下是代码: 以下是从input读取每行的启动代码。 var path = '../10GB_input_file.txt'; var output_file = '../output.txt'; function fileopsmain(){ fs.exists(output_file, function(exists){ if(exists) { fs.unlink(output_file, function (err) { if (err) throw err; console.log('successfully deleted ' + output_file); }); } }); new lazy(fs.createReadStream(path, {bufferSize: 128 * 4096})) .lines .forEach(function(line){ var line_arr = line.toString().split(';'); perform_line_ops(line_arr, line_arr[6], line_arr[7], […]