块(缓冲区)在 ReadStreaming 中从节点 js 中的文件(文本文件)携带的数据量?
Amount of data a chunk (buffer) carries in ReadStreaming from a file (a text file) in node js?
是否可以从节点js中的文件(文本文件)中知道块(缓冲区)在ReadStreaming中携带的数据量???
我创建了一个 ReadStream 并以块的形式显示了一个文本文件的数据,但是是否可以找到一个缓冲区可能拥有的数据量?
var myReadStream = fs.createReadStream( __dirname + '/readme.txt', 'utf8');
myReadStream.on('data', function(chunk){
console.log('new chunk received');
console.log(chunk);
Is it possible to know the amount of data a chunk (buffer) carries in ReadStreaming from a file (a text file) in node js ???
是的,在您的示例中,chunk.length
将是块中的数据量。
您无法控制块的长度。当 data
事件发生时,您必须对最终结果进行编码。这就是流的工作方式。给定块的大小取决于发送的数据量,取决于传输(慢速传输更有可能为您提供更小的块)和流中的最大缓冲区大小。
您可以在使用 highWaterMark
选项创建流时控制流中的最大缓冲区大小,如图 in the doc。
var myReadStream = fs.createReadStream( __dirname + '/readme.txt', 'utf8', { highWaterMark: 60000 });
但是将其设置为更大的值只会使获得更大的块成为可能。它不保证它。
I created a ReadStream and displayed the data of a text file in chunks, but is it possible to find the amount of data a buffer could have ?
如果您在创建流时设置 highWaterMark
,那么这将是您可以获得的最大块大小。如果您想查看当前 highWaterMark
设置的内容,您可以在以下位置查看流实例数据:
myReadStream._readableState.highWaterMark
这没有记录在案 API,因此可能会发生变化。如果您需要知道,您应该在创建流时将其设置为所需的值。
是否可以从节点js中的文件(文本文件)中知道块(缓冲区)在ReadStreaming中携带的数据量???
我创建了一个 ReadStream 并以块的形式显示了一个文本文件的数据,但是是否可以找到一个缓冲区可能拥有的数据量?
var myReadStream = fs.createReadStream( __dirname + '/readme.txt', 'utf8');
myReadStream.on('data', function(chunk){
console.log('new chunk received');
console.log(chunk);
Is it possible to know the amount of data a chunk (buffer) carries in ReadStreaming from a file (a text file) in node js ???
是的,在您的示例中,chunk.length
将是块中的数据量。
您无法控制块的长度。当 data
事件发生时,您必须对最终结果进行编码。这就是流的工作方式。给定块的大小取决于发送的数据量,取决于传输(慢速传输更有可能为您提供更小的块)和流中的最大缓冲区大小。
您可以在使用 highWaterMark
选项创建流时控制流中的最大缓冲区大小,如图 in the doc。
var myReadStream = fs.createReadStream( __dirname + '/readme.txt', 'utf8', { highWaterMark: 60000 });
但是将其设置为更大的值只会使获得更大的块成为可能。它不保证它。
I created a ReadStream and displayed the data of a text file in chunks, but is it possible to find the amount of data a buffer could have ?
如果您在创建流时设置 highWaterMark
,那么这将是您可以获得的最大块大小。如果您想查看当前 highWaterMark
设置的内容,您可以在以下位置查看流实例数据:
myReadStream._readableState.highWaterMark
这没有记录在案 API,因此可能会发生变化。如果您需要知道,您应该在创建流时将其设置为所需的值。