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;
}
复制代码

 

posted @   曦花  阅读(1232)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示