テキストファイルのアクセス (2/4)
作成:2013-03-11 07:58
更新:2013-03-11 07:58
更新:2013-03-11 07:58
■File.readで一括読み込み!
続いて、テキストファイルからテキストを読み込むための処理です。テキストの読み込みも、基本的にはFileクラスを利用するという点で書き出しと同じです。
ただし、書き出しの場合と異なり、読み込みは「どうやって全部のテキストを読み込むか」ということを考えないといけません。これにはいくつかのやり方があります。
まずは、もっとも単純なやり方から説明していきましょう。
●Ruby 1.9以降の一括読み込み
Ruby 1.9以降では、テキストの中身をまとめて一括読込するためのメソッドが用意されています。これは「read」というもので、以下のように呼び出します。
見ればわかるように、これはFileクラスから直接呼び出すメソッド(クラスメソッド)です。すなわち、これはopenでFileインスタンスを作って……なんてやらないでいいのです。ただ、File.readを呼び出すだけ!
注意すべきは、:encodingというオプションでしょう。これは省略してもいいのですが、なるべく明示的に指定すべきです。エンコードの種類は、Encodingクラスにある値を利用します。UTF-8ならば、Encoding::UTF_8と指定すればよいでしょう。SJISならば、Encoding::Shift_JISとしておきます。
下のリスト欄に、実際の利用例を挙げておきました。readメソッドによる一発読み込みは実に利用が簡単ですね!
ただし、書き出しの場合と異なり、読み込みは「どうやって全部のテキストを読み込むか」ということを考えないといけません。これにはいくつかのやり方があります。
まずは、もっとも単純なやり方から説明していきましょう。
●Ruby 1.9以降の一括読み込み
Ruby 1.9以降では、テキストの中身をまとめて一括読込するためのメソッドが用意されています。これは「read」というもので、以下のように呼び出します。
変数 = File.read( ファイルのパス , :encoding => エンコーディングの指定 )
見ればわかるように、これはFileクラスから直接呼び出すメソッド(クラスメソッド)です。すなわち、これはopenでFileインスタンスを作って……なんてやらないでいいのです。ただ、File.readを呼び出すだけ!
注意すべきは、:encodingというオプションでしょう。これは省略してもいいのですが、なるべく明示的に指定すべきです。エンコードの種類は、Encodingクラスにある値を利用します。UTF-8ならば、Encoding::UTF_8と指定すればよいでしょう。SJISならば、Encoding::Shift_JISとしておきます。
下のリスト欄に、実際の利用例を挙げておきました。readメソッドによる一発読み込みは実に利用が簡単ですね!
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
# coding: utf-8 result = File.read('sample.txt', :encoding => Encoding::UTF_8) puts('sample.txt を読み込みました。') puts('内容:') puts(result)
※関連コンテンツ