最有效的读取文件到单独的变量使用fstream

Most efficient to read file into separate variables using fstream

本文关键字:变量 单独 fstream 有效 读取 文件      更新时间:2023-10-16

我有很多文件看起来有点像:

12-3-125-BINARYDATA

12, 3125保存为单独的整数变量,并将BINARYDATA保存为char-vector的最有效方法是什么?

我真的很想使用fstream,但我不完全知道如何(让它与std::strings一起工作,但BINARYDATA部分都搞砸了)。

读取数据的最有效方法是使用最少的I/O函数调用读取许多"chunk "或记录到内存中,然后在内存中解析数据。

例如,一次调用fread读取5条记录比5次调用fread读取一条记录更有效率。访问内存总是比访问外部数据(如文件)快。

一些平台有对文件进行内存映射的能力。这可能比读取using I/O函数更有效。分析将决定最有效的。

固定长度的记录总是比可变长度的记录更有效。可变长度记录要么读取到固定大小,要么读取到找到终端(哨兵)值。例如,文本行是一个可变记录,必须每次读取一个字节,直到找到终止的end - line标记。在这种情况下,缓冲可能有所帮助。

二进制数据是什么意思?它是010101000个字符还是"真正的"二进制数据?如果它们是真正的"二进制数据",只需将该文件作为二进制文件读取。首先为第一个int读取2个字节,然后为-读取1个字节,为3读取2个字节,以此类推,直到读取二进制数据的第一个pos,只需获取文件长度并读取全部。