Tôi đang tìm cách xử lý tệp văn bản với nút bằng cách sử dụng lệnh gọi dòng lệnh như:
node app.js < input.txt
Mỗi dòng của tệp cần được xử lý riêng lẻ, nhưng sau khi xử lý, dòng đầu vào có thể bị quên.
Sử dụng trình nghe trên dữ liệu của stdin, tôi nhận được hơi đầu vào được chia theo kích thước byte nên tôi thiết lập nó.
process.stdin.resume();
process.stdin.setEncoding('utf8');
var lingeringLine = "";
process.stdin.on('data', function(chunk) {
lines = chunk.split("\n");
lines[0] = lingeringLine + lines[0];
lingeringLine = lines.pop();
lines.forEach(processLine);
});
process.stdin.on('end', function() {
processLine(lingeringLine);
});
Nhưng điều này có vẻ rất cẩu thả. Phải mát xa xung quanh các mục đầu tiên và cuối cùng của mảng dòng. Không có cách nào thanh lịch hơn để làm điều này?