序
在之前的篇章中,出现了几次关于文件的操作,本篇将会对文件操作做介绍,可能篇幅有点长,但是耐心看吧,留点印象也挺好的。
介绍
首先介绍下文件操作的相关概念吧,文件一般指存储在外部介质上的数据的集合,即一般数据是以文件的形式存储在外部介质上,这个介质可以是我们的硬盘也可以是其他的具有存储能力的物体。
操作系统就是以文件为单位对数据进行管理,即如果要找到外部介质上的数据,就需要先找到对应的文件,然后从该文件中读取需要的数据,如果是保存一段数据,也需要有个用于存储数据的文件,这个文件可以是已存在的,也可以是新建生成的,这样子才能将数据写入其中。
MATLAB将文件根据数据的形式分为了ASCII文件和二进制文件这两种,ASCII文件也就是常称的文本文件,文件内容中的每一个字节放一个ASCII码,即代表一个字符。二进制文件就是把内存中的数据按其在内存中的存储形式输出到硬盘上存放。这两种文件也有各自的优缺点,文本文件中,一个字节代表一个字符,因此便于直接对字符进行处理,也方便直接输出字符到文本中,但是会占据较多的空间,也比较耗时;而二进制文件采用二进制形式保存数据,会节省掉所需的空间和转换时间,不过由于每一个字节对应的不是一个字符,因此无法直接输出字符形式。
下表列出的是MATLAB中主要的文件操作函数
函数分类 |
函数名 |
作用 |
打开和关闭文件 |
fopen |
打开文件 |
fclose |
关闭文件 |
|
文件I/O |
save |
把工作区的变量存到.mat后缀的文件中 |
load |
将.mat文件中的变量加载到工作区 |
|
fread |
读二进制文件 |
|
fwrite |
写二进制文件 |
|
fscanf |
从文件中读格式数据 |
|
fprintf |
写文件数据 |
|
fgetl |
从文件中读行,不包括换行符 |
|
fgets |
从文件中读行,包括换行符 |
|
文件定位 |
feof |
检验是否为文件结尾 |
fseek |
指针指向文件指定位置 |
|
ftell |
获取指针指向文件的当前位置 |
|
frewind |
指针指向文件开始位置 |
|
临时文件删除 |
tempdir |
系统临时文件夹名称 |
tempname |
临时文件夹中的临时文件名称 |
现在就开始对上表中的一些函数进行介绍。
文件的打开与关闭
在对一个文件进行读写操作前应该打开文件,然后在使用结束之后关闭该文件,这之中将分别用到fopen打开文件,fclose关闭文件,fopen的调用格式为:
fileID=fopen(filename)
fileID=fopen(filename,permission)
fileID=fopen(filename,permission,machinefmt,encodingIn)
[fileID,errmsg]=fopen(___)
fIDs=fopen('all')
filename=fopen(fileID)
[filename,permission,machinefmt,encodingOut]=fopen(fileID)
其中fileID为调用文件时返回的文件句柄,文件打开后,就可以使用文件句柄来代替该文件,然后对其进行操作,不过在打开文件的时候会带上一个访问类型也就是上面的permission,访问类型有以下的几种:
文件访问类型 |
说明 |
'r' |
打开要读取的文件。 |
'w' |