快速读取大文件 - vroom

快速读取大文件 - vroom,第1张

官方文档: Get started with vroom

对于有相同列数的文件,可以一次性读入并合并为一个文件。id参数:最后加上一行,为文件的路径。

远程可以读取文档和.gz格式的压缩文件。

略,见文档。

快速读取二进制文件的方法如下:

1、打开文件。

打开文件可以有两种方式,第一种可以使用fstream类的构造函数。fstream file("test.dat",ios_base::in|ios_base::out|ios_base::app)另外一种方法就是使用

open函数。fstream filefile.open("test.dat",ios_base::in|ios_base::out|ios_base::app)

这样就可以打开一个可读写的文件了。如果文件不存在的话,就会创建一个新文件并且以读写方式打开。这里需要说明一点,如果文件不存在的话,open函数中第二个参数必须包含ios_base::out|ios_base::app,否则就不能正确创建文件。

2、写文件。

先进性写文件的 *** 作否则读一个空文件是没有意义的。

既然是写二进制文件可以向文件中写入一个整形值。写二进制字符只能使用write

函数。但是write函数的原形是write(const char * ch, int size)。第一个参数是char *

类型,所以需要把将要写入文件的int类型转换成char *类型。这里的转换困扰了我好几天,不过终于弄明白了。代码如下。int tempfile.write((char *)(&temp),sizeof(temp))

3、读文件。

可以写文件了,读文件就好办多了。读文件需要用到read函数。其参数和write

大致相同,read(const char * ch, int size)。要把内容读到int类型变量中同样涉及到一个类型转换的问题。和写文件一样。int readIntfile.read((char(&readInt),sizeof(readInt))这样文件中的int值就读入到int型变量

readInt中了。

4、文件指针

在文件的读写过程中往往需要对文件进行选择性读取。所以需要进行文件指针的移动。这是需要用到seekg和seekp函数。在fstream类中有两个文件指针,一个是读取文件的指针

,一个是写文件的指针分别用tellg和tellp文件来取得指针的位置。同样seekg和seekp两个函数分别是对这两个指针进行移动的函数。这两个函数的参数都是一样的。先对几个枚举类型进行一下说明:

ios_base::beg ——文件开始位置ios_base::cur ——文件当前位置ios_base::end ——文件末尾位置下面以seekg为例说明一下指针移动的方法:file.seekg(3) ——指针移动到第三个字符的位置file.seekg(ios_base::beg) ——指针移动到文件开头file.seekg(ios_base::end) ——指针移动到文件末尾file.seekg(-3,ios_base::cur) ——

指针当前位置向前移动三个字符file.seekg(3,ios_base::cur) ——指针当前位置向后移动三个字符file.seekg(3,file.tellg()) ——指针当前位置向后移动三个字符file.seekg(file.tellg()+3) ——指针当前位置向后移动三个字符

5、对文件 *** 作完毕后别忘了关闭文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11491470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存