CFile读文件和写文件。追加写文件
读文件到CString
CFile file; file.Open(_T("F:\\test.json"), CFile::modeRead); DWORD len = file.GetLength(); char *Buf = new char[len+1]; //memset(Buf,0,len); Buf[len] = '\0'; //0终止字符串,用于输出。 file.SeekToBegin(); file.Read(Buf, sizeof(char) * len); file.Close(); CString strJson(Buf); SafeDel(Buf);
写文件
void CXXXX::WriteFile(CString strContent, CString strFileName, BOOL bBOM /*= FALSE*/) { int u8Len = ::WideCharToMultiByte(CP_UTF8, NULL, strContent, (int)wcslen(strContent), NULL, 0, NULL, NULL); char* szU8 = new char[u8Len + 1]; ::WideCharToMultiByte(CP_UTF8, NULL, strContent, (int)wcslen(strContent), szU8, u8Len, NULL, NULL); szU8[u8Len] = '\0'; //最后加上'\0' CFile cFile; cFile.Open(strFileName, CFile::modeWrite | CFile::modeCreate); cFile.SeekToBegin(); if (bBOM) { cFile.Write("\xef\xbb\xbf", 3); //写BOM,同样低位写在前 } cFile.Write(szU8, u8Len * sizeof(char)); cFile.Flush(); cFile.Close(); delete[] szU8; szU8 = NULL; }
追加写文件
void CXXXXX::WriteLogRecord(CString strContent, CString strFileName) { COleDateTime curtime = COleDateTime::GetCurrentTime(); CString strTime; strTime.Format(_T("%d/%d/%d %d:%d:%d---"), curtime.GetYear(), curtime.GetMonth(), curtime.GetDay(), curtime.GetHour(), curtime.GetMinute(), curtime.GetSecond()); strContent = strTime + strContent + _T("\r\n"); int u8Len = ::WideCharToMultiByte(CP_UTF8, NULL, strContent, (int)wcslen(strContent), NULL, 0, NULL, NULL); char *szU8 = new char[u8Len + 1]; ::WideCharToMultiByte(CP_UTF8, NULL, strContent, (int)wcslen(strContent), szU8, u8Len, NULL, NULL); szU8[u8Len] = '\0'; CFile cFile; cFile.Open(strFileName, CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate); cFile.SeekToEnd(); cFile.Write(szU8, u8Len * sizeof(char)); cFile.Flush(); cFile.Close(); delete[] szU8; szU8 = NULL; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现