读写文件相关操作
来源:互联网 发布:服务贸易数据包括哪些 编辑:程序博客网 时间:2024/05/16 16:13
一.CFile与CStdioFile的区别
1.CFile类,操作文件默认是Binary模式,CStdioFile类操作文件默认是Text模式在Binary模式下我们必须输入'\r\n',才能起到回车换行的效果,'\r'只是回车(回到当前行的第一列),'\n'只是换行(到达下一行的当前列)。而在Text模式下'\r'的工作是自动完成的,当我们写一个'\n'的时候,系统会自动帮我们在其前面加上一个'\r',然后保存到文件里。另外,CFile::typeText只能在CFile的子类中使用,CFile自身的Read函数不能使用CFile::typeText和CFile::typeBinary
2.File 是C和C++的函数! mfc中使用了CFile类进行相同的文件操作功能! CStdioFile继承了CFile 是CFile的子类,扩展了文本文件的操作,认识回车换行字符,可以进行一行字符串的读写!
3.Cfile类提供了基于二进制流的文件操作,功能类似于C语言中的fread()和fwrite()函数。CStdioFile提供了基于字符串流的文件操作,功能类似于C语言中的fgets()和fputs()函数。
4.CStdioFile继承了CFile类,特有的函数是ReadString(),WriteString(),但是不支持Duplicate(),Lockrange(),UnLockRange(),相当于流式文件的操作
void COpenfileDlg::OnFileOpen() {CFileDialog fo(TRUE,"*.txt","打开文件",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"文本文件(*.txt)|*.txt|所有文件|*.*||)");if(IDCANCEL == fo.DoModal())return;CString path = fo.GetPathName();CFile file;if(!file.Open(path,CFile::modeRead)){AfxMessageBox("文件打开失败!");return;}DWORD Len = file.GetLength();char * pBuf = new char[Len+1];//此处设置Len+1,为隔行做伏笔file.Read(pBuf,Len);pBuf[Len] = 0;//将非正文最后一位置零,遇到0结束,不再往下读,否则会读到错误的字节SetDlgItemText(IDC_TEXT,pBuf);file.Close();delete pBuf;}void COpenfileDlg::OnFileSave() {CFileDialog fo(FALSE,"*.txt","保存文件",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"文本文件(*.txt)|*.txt|所有文件|*.*||)");if(IDCANCEL == fo.DoModal())return;CString path = fo.GetPathName();//方法一:CFile/*CFile file;if(!file.Open(path,CFile::modeWrite|CFile::modeCreate)){AfxMessageBox("文件打开失败!");return;}CWnd * pWnd = GetDlgItem(IDC_TEXT);int Len = pWnd->GetWindowTextLength();char * pBuf = new char[Len+1];//此处设置Len+1,为隔行做伏笔pBuf[Len] = 0;//将非正文最后一位置零,遇到0结束,不再往下读,否则会写入错误的字节pWnd->GetWindowText(pBuf,Len+1);file.Write(pBuf,Len);file.Close();delete pBuf;*///方法二CStdioFileCString strEdit1;GetDlgItemText(IDC_TEXT, strEdit1);//获取指定ID的编辑框内CStdioFile file;if(file.Open(path, CStdioFile::modeCreate | CStdioFile::typeBinary | CStdioFile::modeWrite)){file.WriteString(strEdit1);file.Close();}}
0 0
- 读写文件相关操作
- C#文件读写及相关操作
- Java IO 文件读写相关的操作
- C#文件读写及相关操作
- [转]C#文件读写及相关操作
- python 文件读写查找、替换相关简单操作
- PHP文件读写操作相关函数学习资料笔记
- MTK文件读写相关
- MTK文件读写相关
- MTK文件读写相关
- THinkPHP 读写文件相关
- Java 读写文件相关
- 文件读写相关函数
- 文件读写操作
- 另一个文件读写操作
- [C++]文件读写操作
- 读写文件操作
- xml文件操作( 读写)
- 周记<From 2016/8/17 to 2016/8/23>
- [noip2001pj] 装箱问题
- java_web用户的自动登录模块的实现
- Android中使用Handler造成内存泄露的分析和解决
- 【Qt开发】解决Qt5.7.0中文显示乱码的问题
- 读写文件相关操作
- 编程珠玑第二章习题2.6(1-4)
- 数据结构 线段树 HDU 1754I Hate It(单点更新)
- 新技能get
- 监听器实现网站计数并获取用户信息
- python 多线程与多进程的简单测试比较
- 利用Spring的@Value注解读取配置文件
- shared_ptr
- 玩转Android之数据库框架greenDAO3.0使用指南