- # Ruby入門 > IOクラス(入出力)
ファイルを読み込み、ファイルを新規作成し書き込む
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
とあるデータファイルを読み込んで、別にファイルを開いて(新規作成して)、読み込んだデータを書き込む、というスクリプトを書いてみます。
まずは、データファイル。
スポンサーリンク
number.dat
3,6,455,64 23,67,10,2925, 53,67,487 30,57, 12,65,89,3432,456
number.datは、カンマで区切られた数字が、複数行に渡って、だーっと書かれているファイルです。
このファイルのデータを読み込み、1行ずつの合計値、およびすべての合計を、コンソール(画面上)出力、およびファイルに書き出しを行います。
file = File.open("number.dat", "r") output = "" # 出力する文字列 all_total = 0 # すべての合計 one_results = [] # 1行の合計値の配列 while line = file.gets num_datas = line.chomp.split(/,/) p num_datas # 1行ずつ確認(ファイルには書き出さない) # 1行ごとの合計 one_total = 0 num_datas.each{|i| output << i one_total += i.to_i if i == num_datas.last next end output << " + " } all_total += one_total output << " = #{one_total}\n" one_results.push(one_total) end output << "all total:\n" output << one_results.join(' + ') << ' = ' << all_total.to_s puts output # コンソールに出力 file.close # ファイルクローズ # ファイルに書き出し output_file = File.open("output_number.dat", "w") # 書き込み専用でファイルを開く(新規作成) output_file.write(output) # ファイルにデータ書き込み output_file.close # ファイルクローズ
まずは、コンソール上(画面上)の出力結果。
["3", "6", "455", "64"] ["23", "67", "10", "2925"] ["53", "67", "487"] ["30", "57"] ["12", "65", "89", "3432", "456"] 3 + 6 + 455 + 64 = 528 23 + 67 + 10 + 2925 = 3025 53 + 67 + 487 = 607 30 + 57 = 87 12 + 65 + 89 + 3432 + 456 = 4054 all total: 528 + 3025 + 607 + 87 + 4054 = 8301
作成されたファイルに書き出された出力結果。
output_number.dat
3 + 6 + 455 + 64 = 528 23 + 67 + 10 + 2925 = 3025 53 + 67 + 487 = 607 30 + 57 = 87 12 + 65 + 89 + 3432 + 456 = 4054 all total: 528 + 3025 + 607 + 87 + 4054 = 8301
と、なります。
スポンサーリンク
>> 次の記事 : File.readで全部読み込む・closed?メソッドで確認
<< 前の記事 : ファイルのオープン・入出力
- - 関連記事 -
- ファイルポインタを操作する
- 出力メソッド
- 入力メソッド・1バイトずつ処理
- 入力メソッド・1行ずつ処理
- StringIOオブジェクト・stringio.rb
- URLを開く
- File.readで全部読み込む・closed?メソッドで確認
- ファイルのオープン・入出力
- 標準入力・標準出力・標準エラー出力
スポンサーリンク