www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/OverwriteOrAppendToExistingBinaryFilesExample.m

    %% Overwrite or Append to an Existing Binary File
% This example shows how to overwrite a portion of an existing binary file
% and append values to the file.
%%
% By default, |fopen| opens files with read access. To change the type of
% file access, use the permission specifier in the call to |fopen|. Possible
% permission specifiers include:
% 
% * |'r'| for reading
% * |'w'| for writing, discarding any existing contents of the file
% * |'a'| for appending to the end of an existing file
% 
% To open a file for both reading and writing or appending, attach a plus
% sign to the permission, such as |'w+'| or |'a+'|. 
% If you open a
% file for both reading and writing, you must call |fseek| or |frewind| between
% read and write operations.
%% Overwrite a Portion of an Existing File
% Create a file named |magic4.bin|, specifying permission to write and
% read.
fileID = fopen('magic4.bin','w+');
fwrite(fileID,magic(4));
%%
% The original magic(4) matrix is:
% 
%  16     2     3    13
%   5    11    10     8
%   9     7     6    12
%   4    14    15     1
%
% The file contains 16 bytes, 1 for each value in the matrix. 
%%
% Replace the values in the second column of
% the matrix with the vector, |[44 44 44 44]|. To do this, first seek to
% the fourth byte from the beginning of the file using |fseek|.
fseek(fileID,4,'bof');
%%
% Write the vector |[44 44 44 44]| using |fwrite|.
fwrite(fileID,[44 44 44 44]);
%%
% Read the results from the file into a 4-by-4 matrix.
frewind(fileID);
newdata = fread(fileID,[4,4])
%%
% Close the file.
fclose(fileID);
%% Append Binary Data to Existing File
% Append the values |[55 55 55 55]| to |magic4.bin|. First. open the file
% with permission to append and read.
fileID = fopen('magic4.bin','a+');
%%
% Write values at end of file.
fwrite(fileID,[55 55 55 55]);
%%
% Read the results from the file into a 4-by-5 matrix.
frewind(fileID);
appended = fread(fileID, [4,5])
%%
% Close the file.
fclose(fileID);