文件操作基础知识
文件操作需要的头文件:
-
#include <fstream>
文件类型:
- 文本类型
- 二进制类型
文件操作创建的对象类型:
- ofstream:写文件操作
- ifstream:读文件操作
- fstream:读写操作
打开方式:
- ios::in:读
- ios::out:写
- ios::ate:光标初始位置:文本末尾
- ios::app:追加方式写文件
- ios::trunc:先删除原文件,再新建
- ios::binary:二进制方式
多种打开方式可以通过 | 连接,配合使用。
可以利用 ofstream
和 ifstream
的 is_open
函数判断文件是否打开。
文本类型文件写操作
- 包含头文件:
#include <fstream>
- 创建流对象:
ofstream ofs;
- 打开文件:
ofs.open(filePath, 打开方式);
- 写入数据:
ofs << 数据;
- 关闭文件:
ofs.close();
文本类型文件读操作
- 包含头文件:
#include <fstream>
- 创建流对象:
ifstream ifs;
- 打开文件:
ifs.open(filePath, 打开方式);
- 读取数据:四种数据读取方式
- 关闭文件:
ifs.close();
数据读取方式一:
char buf[1024] = {0}; // 创建数据缓存区 while(ifs >> buf) { // 按行读取数据 cout << buf << endl; }
数据读取方式二:
char buf[1024] = {0}; // 创建数据缓存区 while(ifs.getline(buf, sizeof(buf))) { // 按行读取数据 cout << buf << endl; }
数据读取方式三:
#include <string> string buf; // 创建数据缓存区 while(getline(ifs, buf)) { // 按行读取数据 cout << buf << endl; }
数据读取方式四:不推荐,干脆不记了。
二进制类型文件写操作
可以直接用于保存对象
- 包含头文件:
#include <fstream>
- 创建流对象:
ofstream ofs;
- 打开文件:
ofs.open(filePath, ios::out | ios::binary);
- 写入数据:
ofs.write((const char*)&p, sizoeof(p));
- 关闭文件:
ofs.close();
二进制类型文件读操作
- 包含头文件:
#include <fstream>
- 创建流对象:
ifstream ifs;
- 打开文件:
ifs.open(filePath, ios::in | ios::binary);
- 读取数据:
ifs.read((char*)&p, sizoeof(p));
- 关闭文件:
ifs.close();