Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 为什么std::io::Read中的函数需要缓冲区?_File_Io_Rust - Fatal编程技术网

File 为什么std::io::Read中的函数需要缓冲区?

File 为什么std::io::Read中的函数需要缓冲区?,file,io,rust,File,Io,Rust,为什么中的方法,即read\u to\u end、read\u to\u string、和read\u exact会占用缓冲区而不是返回结果?当前返回值是一个结果(或结果),但不能将其转换为一个元组,也包含结果?讨论了这些函数,并描述了函数取代返回值的两个原因: 表演。当已知读取将涉及大量字节时,可以预先分配缓冲区 “原子性”问题。对于RealthtoToEnter,即使在中间读取失败的情况下,也可以使用此API保留所收集的数据。对于read_to_字符串,情况并非如此,因为在这种情况下无法

为什么中的方法,即
read\u to\u end
read\u to\u string
、和
read\u exact
会占用缓冲区而不是返回结果?当前返回值是一个
结果
(或
结果
),但不能将其转换为一个元组,也包含结果?

讨论了这些函数,并描述了函数取代返回值的两个原因:

  • 表演。当已知读取将涉及大量字节时,可以预先分配缓冲区

  • “原子性”问题。对于RealthtoToEnter,即使在中间读取失败的情况下,也可以使用此API保留所收集的数据。对于read_to_字符串,情况并非如此,因为在这种情况下无法确保UTF-8的有效性;但是,如果需要中间结果,可以使用read_to_end并仅在末尾转换为字符串

对于第一点,可以使用关联函数预先分配字符串。向量存在一个非常类似的函数: