Ruby – ファイル操作

要点

  • Fileクラスを使うことで、開いたファイルをオブジェクトとして扱える
  • Fileはopenメソッドで開き、closeメソッドで閉じる
  • openメソッドで開いたファイルオブジェクトに対して、行単位の読み込みなどの処理を行う

ファイルのオープン/クローズ

ファイルのオープンにはFile#openメソッドを使う。第1引数でファイルのパス、第2引数でファイルを開くモードを文字列で指定。

変数 = File.open("ファイルへのパス", "モード")

モード指定の例は以下の通り。

"r" 読込 デフォルト
"w" 書込 ファイルが存在している場合は内容を空にする
"a" 追加 ファイルが存在している場合は末尾に追加する
"r+" 読書 ポインターはファイルの先頭にセット
"w+" 読書 ファイルが存在している場合は内容を空にする
"a+" 読書 読込位置は先頭、書き込み位置は末尾にセット

ファイルのクローズにはcloseメソッドを使う。

ファイルオブジェクトの変数.close

以下はファイル名を指定してファイルを開き、何もせずにクローズする例。

以下の構文は、ファイルのクローズを明示しなくても完結する。

ただしこれには注意が必要。このブロックの中で定義した変数でファイルの内容を読み込むと、ブロックの外ではその変数は使えない(ブロック内スコープ)。

ブロック内で読んだ内容を外で参照するためには、ブロック外で変数が定義されている必要がある。

ファイルの読み込み

一括読込

ファイルの読み込みは、ファイルオブジェクトのreadメソッドを使う。

行ごとの読み込み

Fileオブジェクトのeach_lineメソッドを使うと、行単位で読み込んでくれる。

行番号

Fileオブジェクトのlinenoプロパティーは、現在読んでいる位置の行番号を持っている。

ファイルの書き込み

ファイルの書き込みはopenの第2引数で"w"を指定する。ファイルが存在すればその内容が空にされ、ファイルが存在しなければ新たに作られる。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です