【转】MFC中用CFile读取和写入文件2
原文网址:http://blog.sina.com.cn/s/blog_623a7fa40100hh1u.html
CFile提供了一些常用的操作函数,如表1-2所示。
|
表1-2 CFile操作函数 |
|
|
函数 |
含义 |
|
Open |
打开文件 |
|
Close |
关闭文件 |
|
Flush |
刷新待写的数据 |
|
Read |
从当前位置读取数据 |
|
Write |
向当前位置写入数据 |
|
GetLength |
获取文件的大小 |
|
Seek |
定位文件指针至指定位置 |
|
SeekToBegin |
定位文件指针至文件头 |
|
SeekToEnd |
定位文件指针至文件尾 |
|
GetFileName |
获取文件名,如:“NOTEPAD.EXE” |
|
GetFilePath |
获取文件路径,如:“C:\WINDOWS \NOTEPAD.EXE” |
|
GetFileTitle |
获取文件标题,如:“NOTEPAD” |
|
GetPosition |
获取当前文件指针 |
|
GetStatus |
获取当前文件的状态,返回一个CFileStatus |
|
#Remove |
静态方法,删除指定文件 |
|
#Rename |
静态方法,重命名指定文件 |
注意最后两个静态函数,其实它们封装了Windows API中关于文件管理的函数。
使用CFile操作文件的流程如下:
构造一个CFile对象。
调用CFile::Open()函数创建、打开指定的文件。
调用CFile::Read()和CFile::Write ()进行文件操作。
调用CFile::Close()关闭文件句柄。
文件指针的位置设置可以使用:
Seek( LONG lOff, UINT nFrom ) 把文件指针移动到指定位置
lOff :是指针偏移字节数,若向后偏移则为正数,若向前偏移,则为负数。
nFrom :MSDN上有三种取值:
CFile::begin 从文件开头开始算起,lOff为正数;
CFile::current 当前位置开始算起;
CFile::end 从文件结尾开始算起,lOff为负数;
SeekToBegin( ) 把文件指针移到文件开头
SeekToEnd( ) 把文件指针移到文件末尾
GetPosition( ) 返回当前文件指针的位置
获取文件的字节数可用 GetLength( ) 此函数的返回值为DWORD,但可直接用来分配数组元素数目,例如:
DOWRD len=file.GetLength();
char *pBuf=new char[len+1] / int *pBuf=new int[len/4]
char占一个字节,int占四个字节。
写入文件:
CFile file;
file.Open("E:\\VC\\1.txt",CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate,NULL);
file.Write("HelloWorld",strlen("HelloWorld"));
//Write( const void* lpBuf, UINT nCount ) lpBuf是写入数据的Buf指针,nCount是Buf里需要写入文件的字节数
file.close( );
读取文件:
CFile file;
file.Open("E:\\VC\\1.txt",CFile::modeRead,NULL);
DWORD len=file.GetLength( );
char Buf[len+1];
Buf[len]=0; //0终止字符串,用于输出。
file.Read(Buf,len); //Read( void* lpBuf, UINT nCount ) lpBuf是用于接收读取到的数据的Buf指针nCount是从文件读取的字节数
MessageBox(Buf);
【转】MFC中用CFile读取和写入文件2的更多相关文章
- 读取和写入 文件 (NSFIleManger 与 NSFileHandle)
读取和写入 文件 //传递文件路径方法 -(id)initPath:(NSString *)srcPath targetPath:(NSString *)targetPath { self = [su ...
- File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?
重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...
- 在线程中进行读取并写入文件和wenjia
新人求(胸)罩!!! import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException ...
- C# Byte[]数组读取和写入文件
这个项目我用的是asp.net构建的,代码如下 protected void ByteToString_Click(object sender, EventArgs e) { string conte ...
- Redis 中文入库成功,读取数据写入文件乱码问题
近期须要用到redis ,可是在编码这个问题上,纠结了非常久. 需求 :每天一个进程将中文文件入库到redis中(不定时更新) ,另外几个进程读取redis中的信息 ,并处理数据结果.使 ...
- C#读取和写入文件
一.读取文件 如果你要读取的文件内容不是很多, 可以使用 File.ReadAllText(FilePath) 或指定编码方式 File.ReadAllText(FilePath, Encoding) ...
- c#通过FileStream读取、写入文件
网上找过一些FileStream读取写入文件的代码,但是都有些小问题. 于是自己整理一下,以备不时之需.说明一下,以下代码我都运行过. 1.FileStream读取文件 // FileStream读取 ...
- php中读取以及写入文件的方法总结
==>读取文件内容(方法一) $fileData = fread($fileStream,filesize($filePath)); 注意: 文本文件读取到网页上显示时,由于换行符不被解释,文本 ...
- Python读取和写入文件
1 从文件中读取数据 1.1 读取整个文件 创建名为test的txt文本文件,添加内容如下所示: 123456789023456789013456789012 实现代码: with open('tes ...
随机推荐
- [Guava官方文档翻译] 7. Guava的Immutable Collection(不可变集合)工具 (Immutable Collections Explained)
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3538666.html ,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体 ...
- sgu 108 Self-numbers II
这道题难在 hash 上, 求出答案很简单, 关键是我们如何标记, 由于 某个数变换后最多比原数多63 所以我们只需开一个63的bool数组就可以了! 同时注意一下, 可能会有相同的询问. 我为了防止 ...
- 九度OJ 1408 吃豆机器人 -- 动态规划
题目地址:http://ac.jobdu.com/problem.php?pid=1408 题目描述: 淘宝公司内部有许多新鲜的小玩具,例如淘宝智能机器人.小时候,大家都玩过那个吃豆子的游戏吧,这机器 ...
- OpenJudge/Poj 1458 Common Subsequence
1.链接地址: http://poj.org/problem?id=1458 http://bailian.openjudge.cn/practice/1458/ 2.题目: Common Subse ...
- STL 常见容器
vector: 是一种在结尾处高效插入.删除的容器,本质上是一个动态数组,可以自动维护数组的空间分配.它也允许在开头和中间插入.删除数据,但是效率极低. <span style="fo ...
- 怎么用程序获取远程url执行后的图片地址
远程URL:https://121.199.16.229:8890/generate.cgi?rbid=1001&esn=22021434025005&pic=png&coun ...
- 青瓷qici - H5小游戏 抽奖机 1 素材
素材链接… 我们准备好所有素材 青瓷的素材引入,可以通过拖动的方式.我们打开windows的资源管理器,所有素材拖动到texture里面 框架会帮你进行预处理方便加载 我们在atlas文件夹里面新建目 ...
- Hive(转)
Hive分区表 在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作.有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念.分区表指的是在创建表时指 ...
- js replace in multi-line string
.replace(/{id}/g, '_' + counter);
- [转载]WCF 几种常见错误
WCF标准的配置文件为: <system.serviceModel> <services> <service name=" ...