Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当node.js被另一个软件打开以供写入时,读取该文件_Node.js_Stream - Fatal编程技术网

当node.js被另一个软件打开以供写入时,读取该文件

当node.js被另一个软件打开以供写入时,读取该文件,node.js,stream,Node.js,Stream,情况: 1.一个应用程序(不是node.js)将数据写入某个文件,大小未知 2.Node.js应该通过管道传输该文件的内容,直到第一个应用程序打开该文件进行写入 有可能吗?你有一些解决办法 writeStream.js是一个简单的测试类,可以作为演示编写在文件中 const fs = require('fs') const fd = fs.openSync('./openedFile.txt', 'w+') const stream = fs.createWriteStream(null, {

情况: 1.一个应用程序(不是node.js)将数据写入某个文件,大小未知 2.Node.js应该通过管道传输该文件的内容,直到第一个应用程序打开该文件进行写入


有可能吗?

你有一些解决办法

writeStream.js是一个简单的测试类,可以作为演示编写在文件中

const fs = require('fs')
const fd = fs.openSync('./openedFile.txt', 'w+')
const stream = fs.createWriteStream(null, {
  fd,
  encoding: 'utf8'
})
process.stdin.pipe(stream)
读取流轮询:这很简单,读取流在到达文件结尾(EOF)时始终关闭,并触发“结束”事件。因此,如果您全部读取文件,则无法保持文件的打开状态。(在本例中,我无法管理流是否仍然打开,因为它无法读取所有文件)

通过tail读取流(tail命令将为您轮询)


你有一些解决办法

writeStream.js是一个简单的测试类,可以作为演示编写在文件中

const fs = require('fs')
const fd = fs.openSync('./openedFile.txt', 'w+')
const stream = fs.createWriteStream(null, {
  fd,
  encoding: 'utf8'
})
process.stdin.pipe(stream)
读取流轮询:这很简单,读取流在到达文件结尾(EOF)时始终关闭,并触发“结束”事件。因此,如果您全部读取文件,则无法保持文件的打开状态。(在本例中,我无法管理流是否仍然打开,因为它无法读取所有文件)

通过tail读取流(tail命令将为您轮询)


您刚才描述了套接字的概念。你的具体问题是什么?你有没有写过一些代码?文件是文本文件还是字节流?你刚刚描述了套接字的概念。你的具体问题是什么?你有没有写过一些代码?文件是文本文件还是字节流?
const { spawn } = require('child_process');
const child = spawn('tail', ['-f', 'openedFile.txt']);
child.stdout.pipe(process.stdout)