从文件中读取数据时,必须先打开它进行读取,类似地,在写入文件时也必须打开它。这个fopen
函数将apointer返回到可供读取或写入的打开文件。从打开的文件中读取或写入所有数据后,应关闭该文件。这个fclose
函数执行此操作。以下代码说明了写入文件的基本模式,但在读取文件时使用了非常相似的模式。
filename=“myfile.txt”;fid=fopen(文件名,“w”);#在这里执行实际的I/O。。。fclose(fid);
fid =
fopen (name)
¶fid =
fopen (name, mode)
¶fid =
fopen (name, mode, arch)
¶fid =
fopen (name, mode, arch, encoding)
¶[fid, msg] =
fopen (…)
¶fid_list =
fopen ("all")
¶[file, mode, arch, encoding] =
fopen (fid)
¶打开一个文件进行低级I/O,或查询打开的文件和文件描述符。
的第一种形式fopen
函数使用指定的模式(读写、只读等)、体系结构体解释(IEEE big-endian、IEEE little-endian等)和文件编码打开命名文件,并返回一个整数值,该整数值可用于以后引用该文件。如果发生错误,fid设置为−1,并且消息包含相应的系统错误消息。这个mode是一个一个或两个字符的字符串,用于指定是打开文件进行读取、写入还是同时打开文件。这个编码是具有avalid编码标识符的字符串。当从文件中读取或向文件中写入字符串时,将使用此编码。默认情况下,这是UTF-8。
的第二种形式fopen
函数返回一个文件id的向量,该向量响应当前打开的所有文件,不包括stdin
, 标准输出
和标准错误
流。
的第三种形式fopen
函数返回有关给定文件id的打开文件的信息。
例如
myfile=fopen(“splat.dat”,“r”,“ieee-le”);
打开文件splat.dat以供阅读。如有必要,将读取二进制数值,假设它们首先以最低有效位的IEEE格式存储,然后转换为本机表示。
打开一个已经打开的文件只需再次打开它并返回一个单独的文件id。多次打开一个文件不是错误,尽管通过几个不同的文件id写入同一个文件可能会返回意外的结果。
的可能值mode是
打开一个文件进行读取。
打开一个文件进行写入。先前的内容将被丢弃。
打开或创建一个文件以在文件末尾进行写入。
打开现有文件进行读写操作。
打开一个文件进行读取或写入。前面的内容已放弃。
打开或创建一个文件,以便在文件末尾进行读取或写入。
附加一个t
到模式字符串,以文本模式或b
以二进制模式打开。在Windows系统上,文本模式的读取和写入会自动将换行符转换为系统的适当换行符(在Windows上为回车换行符)。未指定模式时的默认值为二进制。
此外,您可以附加z
到模式字符串以打开agzipped文件进行读取或写入。若要成功执行此操作,还必须以二进制模式打开文件。
参数拱是一个字符串,指定文件的默认数据格式。的有效值拱是
native
或n
默认当前计算机的格式。
ieee be
或b
IEEE big-endian格式。
ieee le
或l
IEEE little-endian格式。
打开尚不存在的新文件时,权限将设置为0666 - 乌马斯克
.
兼容性说明:Octave使用缓冲I/O打开文件。小的写入会累积,直到内部缓冲区填满,然后在一次操作中写入所有内容。这非常高效,并提高了性能。MATLAB但是,会使用刷新I/O打开文件,其中每个写入操作都会立即执行。如果写入数据后必须立即执行写入操作,则写入后应调用刷新缓冲区
以刷新内部缓冲区。
详见: fclose, fgets, fgetl, fscanf, fread, fputs, fdisp, 格式化输出, 写入文件, fskipl, fseek, frewind, 位置函数, feof, 铁氧体, fclear, 刷新缓冲区, freport, 乌马斯克.
status =
fclose (fid)
¶status =
fclose ("all")
¶关闭文件描述符指定的文件fid.
如果成功,fclose
返回0,否则返回-1。的第二种形式fclose
调用关闭所有打开的文件,除了stdin
, 标准输出
, 标准错误
,以及与gnuplot相关的任何FID。
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号