首页 > 解决方案 > node.js 寻找文件位置

问题描述

有人可以澄清 fs.readSync 中的“位置”参数的隐含动作是什么吗?

我需要能够找到文件位置。

多年来有关 Stackoverflow 的许多问题和好的答案都涉及使用“位置”参数。

从 node.js.org 文档中,关于“位置”的说明如下

position 是一个参数,指定从文件中的何处开始读取。如果 position 为空,则从当前文件位置读取数据,并更新文件位置。如果 position 是整数,则文件位置将保持不变。

我的问题是关于最后一句话...

如果 position 是整数,则文件位置将保持不变。

“位置”是否会导致寻求该位置,还是因为我的阅读表明它不再是有意义的论点而忽略了论点?

我希望这只是糟糕的文档编写,它实际上实现了搜索。

谢谢

更新:仍然困惑:

根据 Mat 的评论,我认为我理解通过使用“位置”作为非 NULL,将首先执行“搜索”,然后在搜索产生的新文件位置执行“读取”。

我的困惑和问题是基于我现在得到的错误。

首先假设我已经从文件中进行了多次读取——然后是这些语句

const buf = Buffer.alloc(Bytes_to_read);

r = fs.readSync(fdR, buf, Wanted_Position_in_File, Bytes_to_read, 0);

我认为会发生的是文件指针将从文件的开头定位为“Wanted_Position_in_File”字节,我将从该文件中读取下一个数字“Bytes_to_read”字节。

我收到一条错误消息,指出 readSync 读取的字节数超过了分配的 buf 字节数。

请解开我的疑惑。

再次更新 - 弄明白了 - 谢谢

标签: node.jsfs

解决方案


推荐阅读