Scala入门(四):文件操作

 
最近在做一个spark项目,顺便分享一下我的Scala入门过程。这一系列文章假定读者有一定的java或者其他面向对象编程语言基础。本文主要简单介绍文件的操作。

按惯例先上代码

val file = Source.fromFile("/Users/xiejing/Desktop/javascript")
for (line <- file.getLines()) {
  println(line)
}
file.close()

val webFile = Source.fromURL("https://www.baidu.com/");
webFile.foreach(print)
webFile.close

var javaWriter = new BufferedWriter(new FileWriter(new File("/Users/xiejing/Desktop/a.txt")))
for (i <- 4 to 10) {
  javaWriter.write(i.toString())
}
javaWriter.flush()
javaWriter.close()

scala.io.Source.fromFile读取文件, getline获得一个iterator,遍历获取每一行,比Java方便多了。但这里有个问题,由于getline获得的是iterator,一旦你使用它完成遍历,iterator就失效了,所以如果需要反复的遍历文件,推荐Source.fromFile(...).getLines.toList,将文件内容转化为List,可以反复遍历,但代价是内存的消耗。

我们也可以用Source.fromURL来读取网络文件。

由于Scala运行在JVM上,因此可以无障碍的使用Java的类库,所以你可以使用java.io这个库来读取文件。

猜你喜欢

转载自kane-xie.iteye.com/blog/2243023