【Ruby3.x】IO::read()メソッドの使い方
readメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
readメソッドは、IOオブジェクト(ファイルやネットワーク接続など、データの入力・出力を行う対象)からデータを読み込むためのメソッドです。
このメソッドは、読み込むデータのバイト数を示すlengthを引数として受け取ることができます。lengthに数値を指定すると、現在の読み込み位置からそのバイト数分のデータが読み込まれます。lengthを省略するかnilを指定した場合、現在の読み込み位置からファイルの終端まですべてのデータが読み込まれます。
また、読み込んだデータを格納するための文字列オブジェクトをoutbuf引数として指定することも可能です。outbufを指定した場合、読み込んだデータはその文字列オブジェクトに格納され、その文字列オブジェクトが戻り値として返されます。このとき、outbufの既存の内容はクリアされるか、読み込んだデータで上書きされます。
読み込みに成功した場合、読み込まれたデータが文字列として返されますが、ファイルの終端(EOF)に達して読み込むデータがもうない場合にはnilが返されます。
このメソッドを使用すると、IOオブジェクトの現在の読み込み位置は、読み込みが完了したデータの直後に自動的に進められます。ファイルから特定のバイト数のデータを効率的に読み込みたい場合や、残りのデータを一括で読み込みたい場合などに利用されます。
構文(syntax)
1IO.read("ファイル名.txt")
引数(parameters)
length = nil, offset = nil
- length: nil: 読み込むバイト数を指定します。nil の場合は、ファイルポインタの位置からファイルの終端まで全て読み込みます。
- offset: nil: ファイルの先頭から読み込みを開始する位置(オフセット)を指定します。nil の場合は、現在のファイルポインタの位置から読み込みを開始します。
戻り値(return)
String または nil
IOクラスのreadメソッドは、ファイルの内容を文字列として読み込みます。ファイルが正常に読み込まれた場合はその内容をString型で返しますが、ファイルが存在しない、または読み込み権限がないなどの理由で読み込みに失敗した場合はnilを返します。