# FileWriter **命名空间**: `XCEngine::Core` **类型**: `class` **描述**: 文件写入工具类,提供简单的文件写入操作封装。 ## 概述 `FileWriter` 是一个轻量级的文件写入工具,封装了 `FILE*` 接口,提供便捷的字符串和二进制数据写入功能。它支持追加模式和自动资源管理(RAII)。 ## 公共方法 ### 构造/析构 | 方法 | 描述 | |------|------| | `FileWriter()` | 默认构造(不打开文件) | | `FileWriter(const char* filePath, bool append = false)` | 构造并打开文件 | | `~FileWriter()` | 析构函数,自动关闭文件 | ### 文件操作 | 方法 | 描述 | |------|------| | `bool Open(const char* filePath, bool append = false)` | 打开文件,append=true 时为追加模式 | | `void Close()` | 关闭文件 | | `bool IsOpen() const` | 检查文件是否已打开 | ### 数据写入 | 方法 | 描述 | |------|------| | `bool Write(const char* data, size_t length)` | 写入指定长度的字符串 | | `bool Write(const Containers::String& str)` | 写入 String 内容 | | `bool Flush()` | 刷新缓冲区,确保数据写入磁盘 | ## 使用示例 ```cpp #include // 方式1:构造时打开 FileWriter writer("output.txt", false); if (writer.IsOpen()) { writer.Write("Hello, World!\n"); writer.Write("Line 2\n"); writer.Flush(); } // 方式2:先构造再打开 FileWriter writer2; if (writer2.Open("log.txt")) { writer2.Write("Application started\n"); writer2.Close(); } // 追加模式 FileWriter appendWriter("log.txt", true); if (appendWriter.IsOpen()) { appendWriter.Write("Another log entry\n"); appendWriter.Flush(); } // 使用 String 写入 Containers::String content = "Content written from String"; FileWriter writer3("data.txt"); writer3.Write(content); ``` ## 相关文档 - [Logger](../debug/debug-logger.md) - 日志系统 - [FileLogSink](../debug/debug-filelogsink.md) - 文件日志输出