Data
Import and Export :Low-Level File I/O
the
contents of the file:
16 5 9
4
2 11 7 14
3 10 6 15
13 8 12 1
55 55 55 55
Example
— Overwriting an Existing Text File. Replace the third line of the file
changing.txt from the previous example with [33 33 33 33]:
将第三行换成33 33 33 33
replaceLine
= 3;
myformat
= ‘%5d %5d %5d %5d\n‘;
%
Open the file with permission to read and update.
%
Use fgetl, which reads a line at a time,
%
to place the file position indicator at the third line.
fid
= fopen(‘changing.txt‘,‘r+‘);
for
k=1:(replaceLine-1);
fgetl(fid);
end;
%将指针移至第三行起始处
%
call fseek between read and write operations
fseek(fid,
0, ‘cof‘);
%在当前位置开始写入
%
print the new values
fprintf(fid,
myformat, [33 33 33 33]);
%将第三行替换
%
close the file
fclose(fid);
To
view the file, use the type function:
type
changing.txt
This
command returns the new contents of the file:
16 5 9
4
2 11 7 14
33 33 33 33
13 8 12 1
55 55 55 55
>>helpfseek
fseek Set file position
indicator.
STATUS = fseek(FID, OFFSET, ORIGIN) repositions the file position
indicator in the file associated with the given FID.fseek sets the
position indicator to the byte with the specified OFFSET relative to
ORIGIN.
FID is an integer file identifier obtained from FOPEN.
OFFSET values are interpreted as follows:
>= 0Move
position indicator OFFSET bytes after ORIGIN.
< 0Move
position indicator OFFSET bytes before ORIGIN.
ORIGIN values are interpreted as follows:
‘bof‘ or -1Beginning
of file
‘cof‘ or0Current position in file
‘eof‘ or1End of file
STATUS is 0 on success and -1 on failure.If an error occurs, use
FERROR to get more information.
>> help
fgetl
fgetl Read line from file, discard newline
character.
TLINE = fgetl(FID) returns the next line of a file associated with
file
identifier FID as a MATLAB string. The line terminator is NOT
included. Use FGETS to get the next line with the line terminator
INCLUDED. If just an end-of-file is encountered, -1 is returned.
If an error occurs while reading from the file, fgetl returns an
empty
string. Use FERROR to determine the nature of the error.
MATLAB reads characters using the encoding scheme associated with the
file. See FOPEN for more information.
fgetl is intended for use with files that contain newline characters.
Given a file with no newline characters, fgetl may take a long time to
execute.
Example
fid=fopen(‘fgetl.m‘);
while 1
tline = fgetl(fid);
if ~ischar(tline), break, end
disp(tline)
end
fclose(fid);
>> help
ischar
ischarTrue for character array (string).
ischar(S) returns 1 if S is a character array and 0 otherwise.
原文:http://www.cnblogs.com/AI-Algorithms/p/3674290.html