Articles of file io

只读取修改的数据

在我的项目中,我使用fs.watchFile来监听文本文件的修改。 要求只读取上次更新的数据 注意在文本文件数据总是添加,不删除。 示例代码 fs.watchFile(config.filePath, function (curr, prev) { fs.readFile(config.filePath, function (err, data) { if (err) throw err; console.log(data); }); }); 以上代码在修改文件时读取整个文本文件。 任何build议将是伟大的。 工作代码 fs.watchFile(config.filePath, function (curr, prev) { var filestream = fs.createReadStream(config.filePath,{start:prev.size,end:curr.size,encoding:"utf-8"); filestream.on('data', function (data) { console.log(data); }); });

Nodejs如何轻松地将string插入到文件的第n行?

我search了一下,并检查了几个npm(例如懒惰),但仍然找不到一个好的模式插入到第n个文件行的string。 作为Nodejs的新手,我想这可以像其他语言一样轻松完成,例如PHP / Ruby。 提前感谢您的解决scheme。

用CSV写节点js的匹配行

我正在与node js婴儿的步骤。 第一个任务,逐行阅读一个分隔的文件,并吐出包含string“imputed”的行。 #!/usr/bin/env node var Csv = require("csv"), Fs = require("fs"); var foods = "/../data/sr26"; Csv() .from.stream( Fs.createReadStream(__dirname + foods + "/SRC_CD.txt"), {"delimiter": "^", "quote": "~"} ) .to(function(data, count) { console.log(data); }) .transform(function(row, index, callback) { //if (row[1].search(/imputed/) != -1) { process.nextTick(function() { callback( null, row[1].substr(0, 15) + "… " + row[1].search(/imputed/) + "\n" […]

非阻塞文件在nodejs中使用wait.for进行暂停读取

我有以下问题。 我想阅读一个文件之间的行读取非阻塞暂停。 我用wait.for和懒得分别等待和读取文件。 当我呼吁等待,我得到错误:wait.for只能在光纤内调用任何人都可以告诉我如何访问线对象。 我试图做一个单独的function,但是然后我失去行variables持有该行。 var lazy = require("lazy"), fs = require("fs"); wait = require('wait.for'); wait.helper={}; wait.helper.timeout_callback = function(ms,callback){ setTimeout(callback,ms); //call callback(null,null) in ms miliseconds } wait.miliseconds = function(ms){ wait.for(wait.helper.timeout_callback,ms); } function test(){ new lazy(fs.createReadStream('./test.txt')) .lines .forEach( function(line){ //wait.miliseconds(1*1000); // this causes Error: wait.for can only be called inside a fiber console.log(line.toString()); } ); } […]

定位写入现有文件

我正在尝试使用NodeJS编辑现有的二进制文件。 我的代码是这样的: file = fs.createWriteStream("/path/to/existing/binary/file", {flags: "a"}); file.pos = 256; file.write(new Buffer([0, 1, 2, 3, 4, 5])); 在OS X中,按预期工作( 256..261字节被replace为256..261 )。 然而,在Linux中,5个字节被附加到文件的末尾。 这也在NodeJS API Reference中提到 : 在Linux上,当以附加模式打开文件时,位置写入不起作用。 内核忽略位置参数并始终将数据追加到文件的末尾。 我如何解决这个问题?

节点js写入文件

这是它应该做的: 如果没有html文件制作一个,它的内容应该是“正常写入”LINE 87 – 93 如果有内容,用“覆盖”LINE 65 -75覆盖它 如果没有内容,请将内容“空白写”LINE 78 – 82 2作品。 1将使html文件,但不添加内容。 3不添加内容。 我不知道为什么所有3的文件写作部分是相同的。 请帮忙谢谢 这是他的代码: if (htmlFILE) { log('INPUT'.red+' '+htmlFILE); fs.readFile(htmlFILE,'utf8',function(err,data) { if (err) { error(err); } else { if (data.length >= 1) { terminal.question('Do you want to overwrite data in '+htmlFILE+'? [ Y or N ] ',function(answer){ terminal.close(); if (answer.toLowerCase() == […]

Node.js fs获取目录中文件的图标

我想build立一个文件系统浏览器的应用程序,我想用图标列出文件。 我使用node-webkit。 文件可以是可执行文件,目录和正常文件。 在文件列表中,我想要显示文件图标和名称。 我可以使用node.js fs模块获取图标吗? 或者有一个阅读图标的模块? 我怎样才能得到文件的图标?

为OS X构build重复数据删除应用程序,我应该如何使用它作为文件的哈希值

我即将开始编程之旅,毫无疑问,它将以失败告终,并且/或者将我的鼠标通过我的Mac投掷出去,但这是一个有趣的问题。 我想要构build一个应用程序,该应用程序从基本目录开始扫描,然后循环遍历每个文件,如果find完全相同的重复文件,则将其删除,并在其位置上创build符号链接。 基本上穷人重复数据删除。 这实际上解决了一个真正的问题,因为我的Mac上有一堆重复的文件,我需要释放磁盘空间。 从我所读到的,这是战略: 通过recursion循环,并为每个文件生成一个散列。 散列需要非常独特。 这是第一个问题。 我应该使用什么散列? 我如何通过这个神奇的散列运行每个文件的整个二进制内容? 将每个文件散列和全path存储在键/值存储中。 我认为redis是一个非常好的select,因为它的速度。 遍历键/值存储区,查找重复的哈希值,删除重复的文件,创build符号链接,并将键/值存储区中的行标记为副本。 因此我的问题是: 我应该为每个文件使用什么散列algorithm? 这是怎么做的? 我在考虑使用node.js,因为节点通常在I / Otypes的东西上很快。 问题是节点吸取CPU密集的东西,所以哈希可能是瓶颈。 我还有什么其他的缺点?

使用Node.js在服务器端保存客户端数据

我一直在我的机器上尝试Node.js一段时间,我发现我的HTTP请求,XHR对象等知识相当缺乏。 所以在使用Node的时候,我一直在唠叨的主要是我似乎无法理解如何从客户端到服务器进行通信(除了简单的GET请求之外),反之亦然。 我最近的项目是一个简单的2人棋牌游戏(没有AI对手)。 我想要做的是能够将游戏板数据(JSONstring)发送到服务器,并将其保存到文件中。 我知道如何在客户端使用XHR对象获取文件内容。 我也了解如何使用Node的fs模块在服务器端创build和读取文件。 我不明白的是如何使用XHR对象将string发送到服务器,并有节点进程并将其保存到文件中。 用这种方式是否可以使用客户端代码调用服务器端代码? 试图通过一个XHR对象发送一个参数给服务器这样做的一个不正确的方法? 如果我所要求的话题太广泛,我也会对服务器和客户端通信这个话题的链接和书籍开放。

获取文件的新内容

node.js脚本调用最大的计算机代数系统,并将我的inputredirect到最大值的stdin 。 最大值将处理后的input写入临时文本文件,每个结果最大值返回一个新行。 节点可以监视写入文件的新数据,并以某种方式捕获这些数据(只有写入文件的新行,而不是整个文件)? 我已经尝试过fs.watchFile但无法捕获它所返回的实际数据。 谢谢。