我试图一次读一行大文件.我在Quora上发现了一个关于这个问题的问题,但是我错过了一些联系,以使整个事情融合在一起.
var Lazy=require("lazy");
new Lazy(process.stdin)
.lines
.forEach(
function(line) {
console.log(line.toString());
}
);
process.stdin.resume();
Run Code Online (Sandbox Code Playgroud)
我想弄清楚的是我如何从文件而不是STDIN一次读取一行,如本示例所示.
我试过了:
fs.open('./VeryBigFile.csv', 'r', '0666', Process);
function Process(err, fd) {
if (err) throw err;
// DO lazy read
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我知道,在一个紧要关头,我可以回到使用像PHP这样的东西,但我想弄清楚这一点.
我认为其他答案不会起作用,因为文件比我正在运行它的服务器大得多.
我需要询问字符串之间的区别\r\n,\r和\n.字符串如何受每个字符串的影响?
我不得不更换的出现\r\n,并\r用\n,但我不能让他们如何在一个字符串不同...
我知道这\r就像打击进入并且 \n是一条新线.
我需要在终端中传入一个文本文件,然后从中读取数据,我该怎么做?
node server.js file.txt
Run Code Online (Sandbox Code Playgroud)
如何从终端传递路径,如何在另一端读取?
我不知道如何做到这一点.我应该从哪里开始?我用谷歌搜索了这个,并没有提出如何从文本文件中提取随机行的结果.
我发现的唯一的东西是https://github.com/chrisinajar/node-rand-line,但它不起作用.如何从文本文件中读取随机行?
我正在尝试在Node.js下异步和逐行读取文本文件.我有以下CoffeeScript代码:
readline = require 'readline'
fs = require 'fs'
#--------------------------------------------------------------------
lines_of = ( route, handler ) ->
#..................................................................
stream = readline.createInterface
input: fs.createReadStream route
output: process.stdout
terminal: false
#..................................................................
stream.on 'close', ->
handler null, null
#..................................................................
stream.on 'error', ( error ) ->
handler error
#..................................................................
stream.on 'line', ( line ) ->
handler null, line
Run Code Online (Sandbox Code Playgroud)
它工作正常,除非最后一行文件从未报告,除非它被换行符终止.有没有办法解决这个问题(当然,除了手动添加换行符)?
我想使用Node.js读取文本文件(.txt).我需要将每个文本行推入数组,如下所示:
a
b
c
Run Code Online (Sandbox Code Playgroud)
至
var array = ['a', 'b', 'c'];
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我想创建一个便利功能,出于CodeAbbey的目的执行以下操作:
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var lines = [];
rl.on('line', (line) => {
lines.push(line);
});
return lines;
Run Code Online (Sandbox Code Playgroud)
但是,由于readline作为事件处理程序的作用方式,我得到的当然是一个空数组。
我如何在这里获得readline来执行所需的行为?还是我使用其他图书馆?我宁愿只使用“默认”组件,但如果必须使用其他组件,我会使用。
我正在尝试读取 2000 万行文件并更正从 Windows 到 Mac 的行结尾。我知道它可以在 sed 中完成,但 sed 给了我一个我不知道如何修复的错误(dos2unix:在第 625060 行找到二进制符号 0x0008)。所以我正在尝试在 NodeJS 中解决这个问题。这是我的代码:
var fs = require('fs');
var eol = require('eol');
//read file
var input = fs.readFileSync(process.argv[2], 'utf8');
//fix lines
output = eol.auto(input);
console.log("Lines Fixed! Now Writing....")
//write file
fs.writeFile(process.argv[2] + '_fixed.txt', output, function (err) {
if (err) return console.log(err);
});
console.log("Done!")
Run Code Online (Sandbox Code Playgroud)
问题是文件太大,我收到此错误 buffer.js:513 throw new Error('"toString()" failed');
我需要能够读取一个简单的文本文件,其中包含每行的一系列数字.
这些数字需要在我的代码中的某处读取和存储,所以我认为数组是最好的方法.一旦数组存储了值,我可以使用它进行进一步的操作,但我似乎无法实际读取并将值从文本文件中的每一行推入到我的数组中.
最好的方法是什么?所有帮助表示赞赏!谢谢!