scala读取文件,每行保存到变量?

时间:2015-04-24 05:59:10

标签: scala

scalaresult.txt

0~250::250~500::500~750::750~1000::1000~1250
481::827::750::256::1000 

scala代码

 val filename = "/home/user/scalaresult.txt"
 for ( (line,index) <- Source.fromFile(filename).getLines().zipWithIndex){ 
  println(line)
  println(index)
 }

 //val step_x = "0~250::250~500::500~750::750~1000::1000~1250"
 //val step_y = "481::827::750::256::1000"
Seq("java", "-jar", "/home/user/birt2.jar" , step_x , step_y , "BarChart").lines

我有一个文件:scalaresult.txt

我需要将第一行(index(0))保存到step_x 和第二行(index(1))到step_y

怎么做?请指导我谢谢。

2 个答案:

答案 0 :(得分:3)

这不是最佳解决方案,但您可以尝试以下方法:(我还不是scala专家!:P)

scala> val it = Source.fromFile(filename).getLines().toList
it: List[String] = List(0~250::250~500::500~750::750~1000::1000~1250, "481::827::750::256::1000 ")

scala> it(1)
res7: String = "481::827::750::256::1000 "

scala> it(0)
res8: String = 0~250::250~500::500~750::750~1000::1000~1250

答案 1 :(得分:0)

如果你要做的就是从文件中取出两行并将它们插入序列中,列表中的索引器就可以了。请注意,它是列表中的O(n)操作,因此如果有很多行,那么它就不是最好的方法。

val filename = "/home/user/scalaresult.txt"
val lines = Source.fromFile(filename).getLines()
val seq = Seq("java", "-jar", "/home/user/birt2.jar" , lines(0) , lines(1), "BarChart")