当node.js被另一个软件打开以供写入时,读取该文件
情况: 1.一个应用程序(不是node.js)将数据写入某个文件,大小未知 2.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, {
有可能吗?你有一些解决办法 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)