文件流在软件开发中占据着至关重要的地位,是不可或缺的组成部分。它具有众多的应用场景,例如数据存储与备份、生成报告、进行文件输出、实现数据持久化以及管理配置文件等等。
一、构造输出流对象
一般使用创建静态对象或对象指针的方式构建文件流对象,通过std::ios 成员 可以控制文件的读取策略
#include <iostream>
#include <fstream>
int main() {
//内存在栈中分配,由编译器管理
ofstream myFile; // Static or on the stack
myFile.open("filename");
//内存在堆中分配,需手动销毁内存,否则会有内存泄漏
ofstream* pmyFile = new ofstream;
pmyFile->open("filename");
// delete pmyFile ;
//不指定文件读取模式,则默认为 ios::out
ofstream ofile("FILENAME");
//指定文件读取模式
ofstream ofile("FILENAME",ios::app);
//复合模式
ofstream ofile("FILENAME",ios::out | ios::app);
//构造对象操作完成之后记得关闭
myFile.close();
}
二、ofstream 使用
#include <iostream>
#include <fstream>
int main() {
std::ofstream outfile;
//打开文件用于输出
outfile.open("excemple.txt",std::ios::out | ios::app);
//检查文件是否成功打开
if (outfile.is_open()) {
//基础插入
outfile << "This is a basic example of writing to a file." << std::endl;
//插入单个字符
outfile.put('A');
//插入二进制数据,需使用std::ios::binary模式打开文件
//int data[] = {1, 2, 3, 4, 5};
//outfile.write(reinterpret_cast<const char*>(data), sizeof(data));
//outfile.close();
outfile.close();
} else {
std::cerr << "Unable to open file." << std::endl;
}
return 0;
}