123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #pragma once
- // FileOperate.h
- #ifndef FILEOPERATE_H
- #define FILEOPERATE_H
- #include <iostream>
- #include <string>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fstream>
-
- 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");
- *
- *
- ***/
|