写入字符串到文件 - WriteStringToFile
函数简介
将字符串写入到指定文件,支持多种字符编码格式。
接口名称
WriteStringToFile
DLL调用
int32_t WriteStringToFile(int64_t instance, const char* filePath, const char* data, int32_t encoding)
参数定义:
instance(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。filePath(字符串): 目标文件的完整路径data(字符串): 要写入的字符串内容encoding(整型数): 字符编码格式,可选值:- 0: ANSI/GBK编码
- 1: UTF-8编码(无BOM)
- 2: UTF-8编码(带BOM)
- 3: Unicode(UTF-16 LE)编码
- 4: Unicode(UTF-16 BE)编码
示例:
// 创建OLA对象
int64_t instance = CreateCOLAPlugInterFace();
// 写入UTF-8编码文本
int32_t result = WriteStringToFile(
instance,
"C:\\Output\\config.txt",
"这是测试内容\nLine 2\nLine 3",
1 // UTF-8编码(无BOM)
);
if (result == 1) {
printf("成功写入字符串到文件\n");
} else {
printf("写入失败\n");
}
// 写入带BOM的UTF-8文件
result = WriteStringToFile(
instance,
"C:\\Output\\config_bom.txt",
"UTF-8 with BOM content",
2 // UTF-8编码(带BOM)
);
// 写入ANSI编码文件
result = WriteStringToFile(
instance,
"C:\\Output\\ansi.txt",
"ANSI编码内容",
0 // ANSI编码
);
// 释放资源
DestroyCOLAPlugInterFace(instance);
写入JSON配置文件示例:
// 构建JSON字符串
const char* jsonConfig = "{\n"
" \"appName\": \"OLAPlug\",\n"
" \"version\": \"1.0.0\",\n"
" \"settings\": {\n"
" \"autoStart\": true,\n"
" \"language\": \"zh-CN\"\n"
" }\n"
"}";
// 写入JSON配置文件(UTF-8编码)
int32_t result = WriteStringToFile(
instance,
"C:\\Config\\app_config.json",
jsonConfig,
1 // UTF-8编码
);
写入日志文件示例:
// 获取当前时间
time_t now = time(NULL);
struct tm* timeInfo = localtime(&now);
char timestamp[64];
strftime(timestamp, sizeof(timestamp), "%Y-%m-%d %H:%M:%S", timeInfo);
// 构建日志内容
char logEntry[512];
snprintf(logEntry, sizeof(logEntry),
"[%s] 应用启动成功\n[%s] 加载配置完成\n",
timestamp, timestamp);
// 追加写入日志(先读取现有内容)
int64_t existingLog = ReadFileString(instance, "C:\\Logs\\app.log", 1);
char* fullLog;
if (existingLog != 0) {
const char* existing = (const char*)existingLog;
int totalLen = strlen(existing) + strlen(logEntry) + 1;
fullLog = (char*)malloc(totalLen);
snprintf(fullLog, totalLen, "%s%s", existing, logEntry);
FreeStringPtr(instance, existingLog);
} else {
fullLog = (char*)malloc(strlen(logEntry) + 1);
strcpy(fullLog, logEntry);
}
// 写入完整日志
WriteStringToFile(instance, "C:\\Logs\\app.log", fullLog, 1);
free(fullLog);
写入多语言文本示例:
// 写入中文文本
WriteStringToFile(
instance,
"C:\\Text\\chinese.txt",
"你好世界",
1 // UTF-8编码
);
// 写入日文文本
WriteStringToFile(
instance,
"C:\\Text\\japanese.txt",
"こんにちは世界",
1 // UTF-8编码
);
// 写入韩文文本
WriteStringToFile(
instance,
"C:\\Text\\korean.txt",
"안녕하세요 세계",
1 // UTF-8编码
);
返回值
整型数:
- 1: 成功
- 0: 失败
注意事项
- 如果文件已存在,将覆盖原有内容
- 如果目录不存在,写入会失败
- 确保有足够的磁盘空间
- 确保对目标路径有写入权限
- 选择正确的编码格式很重要,避免乱码
- UTF-8编码适合多语言文本和跨平台场景
- ANSI编码适合纯英文或简体中文(Windows系统)
- 带BOM的UTF-8可以让某些文本编辑器自动识别编码
- Unicode编码适合Windows API和需要完整Unicode支持的场景
- 建议配置文件使用UTF-8编码
- 日志文件建议使用UTF-8编码以支持多语言
- 写入系统目录可能需要管理员权限
- 使用绝对路径可以避免路径解析问题
- 字符串长度没有限制,但注意内存使用
- 不会自动追加换行符,需要在字符串中包含
\n
