#pragma once // FileOperate.h #ifndef FILEOPERATE_H #define FILEOPERATE_H #include #include #include #include #include using namespace std; class FileOperate { public: FileOperate(); FileOperate(const std::string& file); ~FileOperate(); // 创建文件 static bool create(const std::string &file); // 删除文件 static bool remove(const std::string &file); // 文件是否存在 static bool exist(const std::string &file); // 打开文件 bool open(ios_base::openmode __mode = std::fstream::in | std::fstream::out); bool open(const std::string &file, ios_base::openmode __mode = std::fstream::in | std::fstream::out); // 关闭文件 void close(); // 重命名文件 bool rename(const std::string &newName); // 文件是否存在 bool isExist(); // 获取文件名 const std::string fileName(); // 获取文件所在目录 const std::string fileDir(); // 获取文件大小(总字节数) std::size_t fileSize(); // 判断当前字符是否在最后 bool atEnd(); // 读取文件内容 void read(std::string &buffer, size_t bufferSize); const std::string readLine(); const std::string readAll(); // 写数据到文件 void write(const std::string &data); private: std::string mFile; std::fstream mFileStream; }; #endif // FILEOPERATE_H /* * // 方式一 FileOperate mFileOperate("/home/Test/Test1.txt"); if (!mFileOperate.open(std::fstream::in | std::fstream::out | std::fstream::app)) { cout << "文件打开失败" << endl; return 0; } // 方式二 FileOperate mFileOperate; std::string fileStr = "/home/Test/Test1.txt"; if (!mFileOperate.open(fileStr, std::fstream::in | std::fstream::out | std::fstream::app)) { cout << "文件打开失败" << endl; return 0; } FileOperate mFileOperate("/home/Test/Test1.txt"); // 获取文件名 cout << mFileOperate.fileName() << endl; // 输出: Test1.txt // 获取文件所在目录 cout << mFileOperate.fileDir() << endl; // 输出: /home/xushuan/Test/ // 获取文件大小 cout << mFileOperate.fileSize() << endl; // 方式一 一行一行读取 std::string data; while (!mFileOperate.atEnd()) { data = mFileOperate.readLine(); } // 方式二 读取指定字节大小的数据 std::string data; mFileOperate.read(data, 100); // 方式三 一次性全部读取 // 方式一 std::string data = mFileOperate.readAll(); // 方式二 string data; mFileOperate.read(data, mFileOperate.fileSize()); // 写入数据到文件 mFileOperate.write("hello"); * * ***/