1、创建文件
要使用C++ 创建文件,可以使用open()
,此方法没有返回值:文件顺利打开后,就可以直接使用流对象来判断是否打开成功。
例如,
#include <iostream> #include <fstream> using namespace std; int main() { ofstream oFile; //不存在则新建文件 oFile.open("test1.txt", ios::app); if (!oFile) //true则说明文件打开出错 cout << "error 1" << endl; else oFile.close(); return 0; }
注意:要在特定目录中创建文件(需要权限),需要指定文件的路径,并使用双反斜杠转义“\”
字符(对于Windows)。在Mac和Linux上,只需编写路径即可,例如:/Users/cjavapy/filename.txt
2、创建并写入文件
要创建文件,可以使用ofstream
或fstream
类,然后指定文件名。
要写入文件,请使用插入运算符(<<
)。
#include <iostream> #include <fstream> using namespace std; int main() { // 创建并打开一个文本文件 ofstream MyFile("filename.txt"); // 写入文件 MyFile << "www.cjavapy.com"; // 关闭文件 MyFile.close(); }
注意:close()
关闭文件可以清理不必要的内存空间。
文件写入还有其它函数,可以参考下面的文档,
相关函数:C++ File文件处理相关函数
3、检查文件状态
可以通过检查文件流的状态来确定文件是否成功打开以及操作是否成功。文件流类 (fstream
、ifstream
、ofstream
) 提供了多种方法来检查文件的状态。
1)创建文件并写入内容,检查文件状态
#include <iostream> #include <fstream> // 用于文件操作 int main() { // 创建并打开一个文件,文件名为 "example.txt" std::ofstream outFile("example.txt"); // 检查文件是否成功打开 if (!outFile.is_open()) { std::cerr << "无法打开文件!" << std::endl; return 1; // 返回非零值表示发生错误 } // 向文件写入内容 outFile << "Hello, this is a test file!" << std::endl; outFile << "This is the second line." << std::endl; // 检查文件流的状态 if (outFile.fail()) { std::cerr << "文件写入失败!" << std::endl; return 1; // 文件写入失败,返回错误 } if (outFile.good()) { std::cout << "文件写入成功!" << std::endl; } // 关闭文件 outFile.close(); // 检查文件是否成功关闭 if (outFile.bad()) { std::cerr << "文件关闭时发生错误!" << std::endl; return 1; // 文件关闭失败,返回错误 } return 0; }
2)读取文件并检查状态
#include <iostream> #include <fstream> int main() { // 打开文件进行读取 std::ifstream inFile("example.txt"); // 检查文件是否成功打开 if (!inFile.is_open()) { std::cerr << "无法打开文件!" << std::endl; return 1; } std::string line; while (std::getline(inFile, line)) { std::cout << line << std::endl; } // 检查是否到达文件末尾 if (inFile.eof()) { std::cout << "已到达文件末尾。" << std::endl; } // 检查是否发生错误 if (inFile.fail()) { std::cerr << "文件读取失败!" << std::endl; } // 关闭文件 inFile.close(); return 0; }