gpt4 book ai didi

javascript - 是否可以使用 fs.createWriteStream 在文件中间写入文本? (或一般在 nodejs 中)

转载 作者:行者123 更新时间:2023-11-30 06:11:36 25 4
gpt4 key购买 nike

我正在尝试写入一个文本文件,但不是像 appendFile() 那样写在最后,也不是通过替换整个内容...

我看到可以使用 fs.createwritestream() -> https://nodejs.org/api/fs.html#fs_fs_createwritestream_path_options 的开始参数选择您想要开始的位置

但是没有参数说明在哪里停止写入,对吧?因此,在我使用此函数编写后,它会删除我文件的所有结尾。

const fs = require('fs');

var logger = fs.createWriteStream('result.csv', {
flags: 'r+',
start: 20 //start to write at the 20th caracter
})

logger.write('5258,525,98951,0,1\n') //example a new line to write

有没有一种方法可以指定在文件中停止写入的位置以具有类似的内容:

  • ....
  • 开始的数据
  • ....
  • 5258,525,98951,0,1
  • ...
  • 数据到最后
  • ...

最佳答案

我怀疑你的意思是,“是否可以在文件中间插入。”答案是:不,不是。

相反,要插入,您必须:

  1. 确定要插入的内容有多大
  2. 将插入点处的数据复制到文件后面的那个字节数
  3. 写下你的数据

显然,在执行 #2 时,您需要确保没有覆盖尚未复制的数据(首先将其全部读入内存,或者通过 block 工作,从文件末尾到插入点)。


(我从未寻找过,但可能有一个 npm 模块可以为您完成此操作...)

关于javascript - 是否可以使用 fs.createWriteStream 在文件中间写入文本? (或一般在 nodejs 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58582161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com