Node.js NodeJS的fs模块中是否有内置的文件缓冲机制?

Node.js NodeJS的fs模块中是否有内置的文件缓冲机制?,node.js,Node.js,(请不要将其与Buffer类混淆,我的意思是文件缓冲或文件缓存) 我已经阅读了关于NodeJS文档的整个fs模块页面。但是我没有发现任何关于为它指定文件缓冲区的方法 例如: 在C/C++中,可以使用或函数 在C#中,FileStream类具有允许您设置缓冲区大小的属性,该类本身将4KB设置为默认缓冲区大小 那么,在NodeJS的世界里有没有任何等价物,或者我必须自己做 请注意,我知道,但我希望能够在一个文件中任意向后和向前(在包的帮助下) 编辑:这是我想要实现的(使用fs模块的同步方法):

(请不要将其与Buffer类混淆,我的意思是文件缓冲或文件缓存)

我已经阅读了关于NodeJS文档的整个fs模块页面。但是我没有发现任何关于为它指定文件缓冲区的方法

例如:

  • 在C/C++中,可以使用或函数
  • 在C#中,FileStream类具有允许您设置缓冲区大小的属性,该类本身将4KB设置为默认缓冲区大小
那么,在NodeJS的世界里有没有任何等价物,或者我必须自己做

请注意,我知道,但我希望能够在一个文件中任意向后和向前(在包的帮助下)

编辑:这是我想要实现的(使用fs模块的同步方法):

//打开一个文件并为其创建一个底层缓冲区,例如4KB
设fd=fs.openSync(路径'r+');
设b=Buffer.alloc(8);
//将4KB缓存到底层缓冲区,将其中的4个字节放入b;
fs.readSync(fd,b,0,4);
//此处,文件指针仍在基础缓冲区范围内,
//因此,我们只需将其下4个字节放入b,而不必进行I/O操作;
fs.readSync(fd,b,0,4);
//缓存未命中:查找距离开始很远的位置,然后读取,fs模块应读取
//在文件指针周围放置一个新的底层缓冲区;
fs.readSync(fd,b,0,4,1024*4+3);
//不是缓存未命中:向前搜索一点点
fs.readSync(fd,b,0,4,1024*4+4);
//不是缓存未命中:向后搜索一点点
fs.readSync(fd,b,0,4,1024*4+1);
//缓存未命中:向后寻找很长的路
读取同步(fd,b,0,4,10);

fs
模块的文档中确实提到了缓冲区。但是,
seek
功能缺失,因此用户必须操作
位置
参数才能完成某些任务。参见功能定义:

fs.read(fd、缓冲区、偏移量、长度、位置、回调)

例如:

var fs=require('fs');
open('bigfile.txt','r',function(err,fd){
如果(错误){
控制台错误(err);
返回;
}
const buffer=buffer.alloc(4096);
fs.read(fd,buffer,0,4096,null,(err,bytesRead,buff)=>{
如果(错误){
控制台错误(err);
返回;
}
log(`bytesRead:${bytesRead}`)
log(buff.toString());
});
}); 

请问您想解决什么实际问题?@lovelywib我正在尝试将2个类BinaryReader和BinaryWriter从.NET移植到NodeJS。端口已经完成,但我只是想了解更多关于这方面的信息。这里似乎有一个误解,我指的是某种文件缓冲区机制,以减少I/O操作,如果NodeJS有,则不是如何将文件读入缓冲区。嘿@MeigyokuThmn,您想提供您试图存档的预期NodeJS代码片段吗。据我所知,在构造函数或I/O操作函数中设置缓冲区几乎是一样的。在引擎盖下,它类似于:加载字节到缓冲区,读取缓冲区,然后重复。没有,因为就像我上面写的,我找不到任何内置的方式也支持查找。似乎我必须自己写一个库。我添加了一个示例,希望它能详细说明。