matlab中fopen 打开文件或获得有关打开文件的信息
参考:https://ww2.mathworks.cn/help/matlab/ref/fopen.html?searchHighlight=fopen&s_tid=doc_srchtitle
个人认为返回的标识符是一个文件句柄handle, 网上的解释是: MATLAB® 保留文件标识符 0
、1
和 2
分别用于标准输入、标准输出(屏幕)和标准错误。
fopen
打开文件或获得有关打开文件的信息
fileID = fopen(filename,permission)
fileID = fopen(filename,permission,machinefmt,encodingIn)
[filename,permission,machinefmt,encodingOut] = fopen(fileID)
说明
fileID = fopen(
打开文件 filename
)filename
以便以二进制读取形式进行访问,并返回等于或大于 3 的整数文件标识符。MATLAB® 保留文件标识符 0
、1
和 2
分别用于标准输入、标准输出(屏幕)和标准错误。
如果 fopen
无法打开文件,则 fileID
为 -1
。
fileID = fopen(
将打开由 filename
,permission
)permission
指定访问类型的文件。
fileID = fopen(
使用 filename
,permission
,machinefmt
,encodingIn
)machinefmt
参数另外指定在文件中读写字节或位时的顺序。可选的 encodingIn
参数指定与文件相关联的字符编码方案。
如果 fopen
打开文件失败,则 [fileID,errmsg] = fopen(___)
还将返回一条因系统而异的错误消息。否则,errmsg
是一个空字符向量。您可以将此语法与前面语法中的任何输入参数结合使用。
fIDs = fopen(\'all\')
返回包含所有打开文件的文件标识符的行向量。为标准输入、输出以及错误而保留的标识符不包括在内。向量中元素的数量等于打开文件的数量。
filename = fopen(
返回上一次调用 fileID
)fopen
在打开 fileID
指定的文件时所使用的文件名。输出文件名将解析到完整路径。fopen
函数不会从文件读取信息来确定输出值。
[filename,permission,machinefmt,encodingOut] = fopen(
还会返回上一次调用 fileID
)fopen
在打开指定文件时所使用的权限、计算机格式以及编码。如果是以二进制模式打开的文件,则 permission
会包含字母 \'b\'
。encodingOut
输出是一个标准编码方案名称。fopen
不会从文件读取信息来确定这些输出值。无效的 fileID
会为所有输出参数返回空字符向量。
示例
fprintf
。否则,请以二进制模式打开文件以获得更佳的性能。
要读写同一文件:
采用带加号
\'+\'
的permission
值打开文件。在读写操作之间调用
fseek
或frewind
。例如,不在调用fread
后调用fwrite
,或调用fwrite
后调用fread
,除非在它们之间调用fseek
或frewind
。
数据类型:char
| string
machinefmt
- 读取或写入字节或位的顺序
\'n\'
(默认) | \'b\'
| \'l\'
| \'s\'
| \'a\'
| ...
在文件中读取或写入字节或位的顺序,指定为以下字符向量或字符串标量之一。
| 系统字节排序方式(默认) |
| Big-endian 排序 |
| Little-endian 排序 |
| Big-endian 排序,64 位长数据类型 |
| Little-endian 排序,64 位长数据类型 |
默认情况下,当前支持的所有平台都使用 little-endian 排序方式对新文件进行排序。现有二进制文件可以使用 big-endian 或 little-endian 排序方式。
数据类型:char
| string
encodingIn
- 字符编码
\'UTF-8\'
| \'ISO-8859-1\'
| \'windows-1251\'
| \'windows-1252\'
| ...
后续读写操作使用的字符编码,包括 fscanf
、fprintf
、fgetl
、fgets
、fread
以及 fwrite
,指定为字符向量或字符串标量。该字符向量或字符串标量必须包含标准字符编码方案名称,如下所示。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
如果您不指定编码方案,fopen
将使用系统的默认编码方案打开文件进行处理。有关详细信息,请参阅使用不同的字符编码打开文件。
如果为编码指定的值不在支持的值列表中,则 MATLAB 会发出警告。有时(并非总是)指定其他编码名称会产生正确的结果。
数据类型:char
| string
fileID
- 已打开文件的文件标识符
整数
已打开文件的文件标识符,指定为整数。
数据类型:double
提示
在大多数情况下,不必以文本模式打开文件。MATLAB 导入函数、所有 UNIX 应用程序以及 Microsoft Word 和写字板都将
\'\n\'
识别为换行指示符。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
代码生成不支持:
输入参数
machinefmt
、encodingIn
或fileID
。输出参数
errmsg
。语法
fopen(\'all\')
。以文本模式打开文件。即
permission
参数不能包含字母t
。例如,值不能为\'rt\'
。
permission
参数最多可以包含三个字符。字符必须是唯一的。如果您禁用外部调用,则不能将使用
fopen
创建的文件标识符返回给 MATLAB 函数或外部函数。这些文件标识符只能在内部使用。生成 C/C++ 可执行文件、静态库或动态库时,最多可以打开 20 个文件。
生成的代码不会报告因文件标识符无效而产生的错误。请在您自己的 MATLAB 代码中自行编写文件打开错误处理程序。测试
fopen
是否返回-1
,此值表示文件打开失败。例如:... fid = fopen(filename, \'r\'); if fid == -1 % fopen failed else % fopen successful, okay to call fread A = fread(fid); ...
当您执行以下操作时,生成的代码对于
fread
的行为取决于编译器:使用
fopen
和a+
permission
打开文件。在调用设置文件位置指示符的 I/O 函数(如
fseek
或frewind
)之前,使用fread
读取文件。
- 上一篇 »Linux VI 命令大全
- 下一篇 »php 常用函数