Main Content

read

クラス: matlab.io.datastore.DsFileReader
名前空間: matlab.io.datastore

ファイルからのバイトの読み取り

構文

A = read(fr,size)
A = read(fr,size,Name,Value)
[A,count] = read(___)

説明

A = read(fr,size) は、ファイルリーダー オブジェクト fr で表されたファイルからデータを返します。size で指定されたバイト数によって、読み取られるデータ量が決まります。

A = read(fr,size,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して追加のパラメーターを指定します。たとえば、'OutputType','char' を指定して、読み取り操作の出力型を char に指定できます。

[A,count] = read(___) は、read メソッドで実際に読み取られたデータのバイト数のカウントを返します。

入力引数

すべて展開する

ファイルリーダー オブジェクト。matlab.io.datastore.DsFileReader オブジェクトとして指定します。DsFileReader オブジェクトを作成する場合は、matlab.io.datastore.DsFileReader を参照してください。

読み取るデータ サイズ。読み取るバイト数を表す整数として指定します。

例: read(fr,20)

データ型: double

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: 'OutputType','uint8'

出力データ型。'OutputType' と次の値のいずれかを含む文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。'uint8''int8''int16''int32''int64''uint16''uint32''uint64''single''double'、または 'char'

例: 'OutputType','uint8'

データ型: char | string

サイズ入力の解釈。'SizeMethod' と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 'NumBytes' - 入力引数 size をファイルから読み取るバイト数として解釈。

  • 'OutputSize' - 入力引数 size を読み取りメソッドからの出力 A のサイズとして解釈。

例: 'SizeMethod','OutputSize'

データ型: char | string

出力引数

すべて展開する

出力データ。配列として返されます。

読み取ったバイト数。スカラー整数値として返されます。

  • 'SizeMethod' プロパティが指定されていない場合、または 'NumBytes' に設定されている場合、count は読み取ったバイト数です。

  • 'SizeMethod' プロパティが 'OutputSize' に設定されている場合、countsize(A) と等しくなります。

データ型: double

開始位置とサイズで指定されたファイルの部分の読み取り

ファイルのファイルリーダー オブジェクトを作成し、目的の開始位置を探索して、ファイルの一部を読み取ります。

airlinesmall.csvDsFileReader オブジェクトを作成します。

fr = matlab.io.datastore.DsFileReader('airlinesmall.csv');

airlinesmall.csv ファイルの先頭には、変数名があります。変数名の行は、299 バイトでマークされた位置で終了します。変数名の行を無視するには、seek メソッドを使用して、読み取りポインターを開始位置に移動します。

seek(fr,299,'RespectTextEncoding',true);

hasdata メソッドを使用して、ファイルに読み取るデータがあるかどうかをチェックします。読み取りメソッドは、ファイルから 1000 バイトを読み取り、文字として解釈します。

if hasdata(fr)
   [d,count] = read(fr,1000,'OutputType','char');
end

SizeMethod パラメーターを OutputSize に設定して、1000 文字を満たすためにファイルから十分なバイト数を読み取ります。

if hasdata(fr)
    [d,count] = read(fr,1000,'SizeMethod','OutputSize',...
                                       'OutputType','char');
end

バージョン履歴

R2017b で導入