C++中读写文件过程中异常处理机制

在利用C++进行文件读取与写入过程中,无论是针对二进制文件还是文本文件均需要进行异常处理,在C++中我们可以利用CFile进行文件的读写,而在MFC中还可以利用CStdioFile进行文件的读写。

利用CFile进行读文本文件过程中的异常处理可以通过如下代码实现

CString m_strFileName = "test.txt";
	CFile m_File;
	CFileException ex;
	if (!m_File.Open(m_strFileName,CFile::modeRead | CFile::shareDenyWrite, &ex))
	{
		TCHAR szError[1024];
		ex.GetErrorMessage(szError,1024);
		AfxMessageBox(szError);
		return;
	}
	else
	{
	}

这样如果在文件读取过程中出现错误,程序就会弹出对话框提醒用户,并中止程序运行。对于写文本文件代码如下

CString m_strFileName = "test.txt";
	CFile m_File;
	CFileException ex;
	if (!m_File.Open(m_strFileName,CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive, &ex))
	{
		TCHAR szError[1024];
		ex.GetErrorMessage(szError,1024);
		AfxMessageBox(szError);
		return;
	}
	else
	{
	}

对于写入二进制文件的代码如下

CString m_strFileName = "test";
	CFile m_File;
	CFileException ex;
	if (!m_File.Open(m_strFileName,CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive | CFile::typeBinary, &ex))
	{
		TCHAR szError[1024];
		ex.GetErrorMessage(szError,1024);
		AfxMessageBox(szError);
		return;
	}
	else
	{
	}

二级制的读取同文本文件读取相同只需加上CFile::typeBinary即可,这样无论是在读取还是写入文件如果这过程中出现什么问题,都会给用户弹出提醒对话框,告知用户出错!

对于CStdioFile在读写文件过程中异常机制的处理与CFile相同,这里不再赘述。

时间: 2024-09-29 02:39:00

C++中读写文件过程中异常处理机制的相关文章

在android中读写文件

在android中读写文件 android中只有一个盘,正斜杠/代表根目录. 我们常见的SDK的位置为:/mnt/sdcard 两种最常见的数据存储方式: 一.内存 二.本地 1.手机内部存储 2.外部存储设备(SD卡) 在SD卡中读数据是不需要权限的,但是在SD卡中写数据是要权限的: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 读写文件的方式就是用的Java的文件

PHP中的错误处理、异常处理机制

PHP中的错误处理.异常处理机制 在编写php程序时,错误处理是一个重要的部分.如果程序中缺少错误检测代码,那么看上去很不专业,也为安全风险敞开了大门 例: <?php $a = fopen('test.txt','r'); //这里并没有对文件进行判断就打开了,如果文件不存在就会报错 ?> 那么正确的写法应该如下: <?php if(file_exists('test.txt')){ $f=fopen('test.txt','r'); //使用完后关闭 fclose($f); } ?&

Android简易实战教程--第十五话《在外部存储中读写文件》

第七话里面介绍了在内部存储读写文件 点击打开链接. 这样有一个比较打的问题,假设系统内存不够用,杀本应用无法执行,或者本应用被用户卸载重新安装后.以前保存的用户名和密码都不会得到回显.所以,有必要注意这个问题 因此把文件保存到sd卡中.即今天所写的  第十五话<在外部存储中读写文件> 首先布局文件和第七话一样: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:

Android 存储学习之在外部存储中读写文件

上节学习了如何在手机内部存储中读写文件,本节学习如何在手机的外部存储中读写文件.那就是如何在Sdcard中读写文件. 那我们还是用以前登录界面的例子举例说明,(登录界面请看上节Android 存储学习之在内部存储中读写文件) 先我们显示写的代码: 当点击确定并且自动登录的钩是选中的,则就会在sdcard文件夹写创建一个info.txt文件 public void login(View v) { String name = ed_nam.getText().toString(); String p

Android 如何在linux kernel 中读写文件

前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog.csdn.net/luckkof 正文 [Description] 如何在linux kernel 中读写文件 [Keyword] linux kernel read write file 读写文件 [Solution] 通常我们只会在linux native/app 层 读写文件,但可能有一些非常特别的情况下,我们需要直接在

PHP中读写文件实现代码

PHP中读写文件实现代码 PHP中读写文件实现代码,整理的还不错,需要的朋友可以参考下. 在PHP中读写文件,可以用到一下内置函数: 1.fopen(创建文件和打开文件) 语法: 复制代码 代码如下: fopen(filename,mode) filename,规定要打开的文件.mode,打开文件的模式,可能的值见下表. mode 说明 "r" 只读方式打开,将文件指针指向文件开头. "r+" 读写方式打开,将文件指针指向文件开头. "w" 写入

Android 存储学习之在内部存储中读写文件

大家都知道,在实际工作中开发,进场需要将一个文件写入到手机的存储中.既然说到手机的存储空间,那就先说说手机的存储空间分类: 1: 内部存储空间 RAM内存: 也就是手机的运行的内存,相当于电脑的内存 ROM内存: 也就是手机的存储内存,相当于电脑的硬盘 2: 外部存储空间 也就是可插拔的SD卡,相当于电脑的移动硬盘,U盘等. 既然手机存储分为两类,那我们先看看如何在手机的内部存储中读写文件. 那我们引入一个实际中很常见的例子: 一般带登录界面的,都需要将用户的信息保存到本地.我们就用上面的例子演

解决 python 中读写文件的终极方案 UnicodeDecodeError: &#39;gbk&#39; codec can&#39;t decode byte 0x9d in position 1270: illega

UnicodeDecodeError: 'gbk' codec can't decode byte 0x9d in position 1270: illegal multibyte sequence 上面是遇到的错误,本来想完成读文件,再写入另一文件的.但是在 fp.read() 时,一直遇到上面的错误,经过各种百度,google, 还有神奇的 stackoverflow 才知道是字符流的问题. 知道问题所在,还是没有解决,又苦苦搜索,终于在 stackoverflow 上找到灵感,可以把 op

Android 怎样在linux kernel 中读写文件

前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog.csdn.net/luckkof 正文 [Description] 怎样在linux kernel 中读写文件 [Keyword] linux kernel read write file 读写文件 [Solution] 通常我们仅仅会在linux native/app 层 读写文件,但可能有一些很特别的情况下,我们须要直接在