例1)
基本よみとって出力
import scala.io.Source object test{ def main(args: Array[String]){ var source =Source.fromFile("test.txt","utf-8") val lines=source.getLines var a1: String =""; var k=0; lines.foreach{println(_);} } }
foreachの- にファイルの内容が代入される。
本当はforeach() これに中身をブロック化した
foreach({}) となり、()を省略し
foreach{}となっている。
実行結果
abc
efg
hij
lmk
例2)
rubyの xxx.each{|i| print i} みたいな感じの書き方
import scala.io.Source object cor_test{ def main(args: Array[String]){ var source =Source.fromFile("test.txt","utf-8") val lines=source.getLines var a1: String =""; var k=0; lines.foreach{a:String => k=k+1; println("Line "+k+" "+a);} source.close(); } }
実行結果
Line 1 abc
Line 2 efg
Line 3 hij
Line 4 lmk
例3) タブ区切りファイルのよみとり
入力ファイル
abc xxx 111
efg yyy 222
hij zzz 333
lmk qqq 444
プログラム
import scala.io.Source object test{ def main(args: Array[String]){ var source =Source.fromFile("test.txt","utf-8") val lines=source.getLines var a1: String =""; var k=0; lines.foreach{a:String => k=k+1; println("Line "+k+" "+a.split('\t')(1));} } }
出力例
$ scala test.scala
Line 1 xxx
Line 2 yyy
Line 3 zzz
Line 4 qqq
例4) とりあえずファイルの内容リストにつめる
import scala.io.Source object cor_test{ def main(args: Array[String]){ var source =Source.fromFile("test.txt","utf-8") val lines=source.getLines var a1: String =""; var k=0; var list2=List[String](); lines.foreach{a:String => k=k+1; list2=(a.split('\t')(2))::list2;} var rev_list2=list2.reverse; rev_list2.foreach(println) source.close(); } }
出力例
111
222
333
444