(マジで)ゼロからRubyする編  〜File.open(読み込み)〜

File.openメソッドを使って、ファイルの読み出しメソッドを作ってみる。
ファイル名:filetest.rb

$KCODE="sjis"

  def textline(read_filename)
    #Filename=read_filename
    data=Array.new
    n=0
    
    file=File.open read_filename
    file.each_line do |line|
      line2=line.chomp
      data[n]=(n+1).to_s + ': '+line2
      n+=1
    end
    
    file.close
    puts(data)
  end

実行コマンド

require "filetest.rb"
textline("kaeru.txt")

実行結果

#=>1:今日はいい天気


補足説明
textlineメソッドを作成。( )の中の引数には、read_filename という名前を入れておく。
read_filename には、読み込みファイルのファイル名を入れる。

 def textline(read_filename)

読み出したデータ(値)を格納する為に、Arrayクラスのnewメソッドを呼び出す。

 data=Array.new
    n=0

Fileクラスのopenメソッドで、read_filename ファイルを開く。

 file=File.open read_filename 

このopenメソッドの第1引数は、開くファイル名。第2引数には、開くモードを示す記号を指定する。
ただし、第2引数は省略すると、テキストファイルは読み込みモードで開かれるようになっている。
つまり、File.open read_filename は、

 File.open(開くファイル名,開くモードを示す記号)
File.open read_filename, 'r'

each_lineメソッドでfileから1行ずつテキスト取り出し、変数lineに収める。

file.each_line do |line|

読み込んだテキストの改行を除く為に、Stringクラスのchompメソッドを使う

line2=line.chomp

読み込んだテキストの先頭に、行数を表示させる。
テキストファイル内の1行目のデータは、data[0]に格納されているので、行数は(n+1)となるが、
data[0]内の添字は整数(integer)なので、to_sメソッドを使い、文字列(string)に変換して表示。

data[n]=(n+1).to_s + ': '+line2
      n+=1

textlineメソッドをincludeした(?)ファイル"filetest.rb"をrequireし、
"kaeru.txt"ファイルのテキストを読み込む。

require "filetest.rb"
textline("kaeru.txt")