首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Node.js读取文本文件?

使用Node.js读取文本文件?
EN

Stack Overflow用户
提问于 2012-02-07 07:11:22
回答 5查看 269K关注 0票数 155

我需要在终端中传入一个文本文件,然后从其中读取数据,我该怎么做呢?

代码语言:javascript
复制
node server.js file.txt

我如何传递来自终端的路径,如何在另一端读取它?

EN

回答 5

Stack Overflow用户

发布于 2018-09-20 02:51:33

Usign fs with node。

代码语言:javascript
复制
var fs = require('fs');

try {  
    var data = fs.readFileSync('file.txt', 'utf8');
    console.log(data.toString());    
} catch(e) {
    console.log('Error:', e.stack);
}
票数 64
EN

Stack Overflow用户

发布于 2012-04-26 04:01:42

应该避免fs.readFile(),因为它加载内存中的所有文件,并且在读取所有文件之前不会调用回调。

阅读文本文件的最简单方法是逐行阅读。我推荐一个BufferedReader

代码语言:javascript
复制
new BufferedReader ("file", { encoding: "utf8" })
    .on ("error", function (error){
        console.log ("error: " + error);
    })
    .on ("line", function (line){
        console.log ("line: " + line);
    })
    .on ("end", function (){
        console.log ("EOF");
    })
    .read ();

对于像.properties或json文件这样的复杂数据结构,您需要使用解析器(在内部,解析器也应该使用缓冲读取器)。

票数 27
EN

Stack Overflow用户

发布于 2017-09-28 15:05:19

您可以使用readstream和管道逐行读取文件,而无需一次性将所有文件读取到内存中。

代码语言:javascript
复制
var fs = require('fs'),
    es = require('event-stream'),
    os = require('os');

var s = fs.createReadStream(path)
    .pipe(es.split())
    .pipe(es.mapSync(function(line) {
        //pause the readstream
        s.pause();
        console.log("line:", line);
        s.resume();
    })
    .on('error', function(err) {
        console.log('Error:', err);
    })
    .on('end', function() {
        console.log('Finish reading.');
    })
);
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9168737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档