補充:html
http://blog.csdn.net/lyrebing/article/details/20369445java
http://developer.51cto.com/art/200907/134957.htmexpress
http://nerd-is.in/2013-08/scala-learning-files-and-regular-expressions/數組
讀取行spa
//讀取文件中的全部行,能夠調用scala.io.Source對象的getLines方法 object LineIO{ def main(args:Array[String]):Unit = { val source = Source.fromFile("F:\\way.txt","UTF-8") //第一個參數能夠是字符串或者是java.io.File //第二個參數可省略 val lineIterator =source.getLines //結果是一個迭代器 for(l<-lineIterator) println(l) //或者能夠對迭代器應用toArray或toBuffer方法,將行放到數組或數組緩衝當中 val lines = source.getLines.toArray //將整個文件讀取成一個字符串 //val contents = source.mkString; source.close } }
讀取字符(一個一個字符處理).net
//按字符處理 object CharIO{ def main(args:Array[String]):Unit={ val source =Source.fromFile("F:\\way.txt","UTF-8") val iter= source.buffered //println(iter.length) while(iter.hasNext){ print(iter.next.toString) } source.close } }
讀取詞法單元和數字scala
object NumIO{ def main(args:Array[String]):Unit={ val source = Source.fromFile("F:\\num.txt","UTF-8") val tockens = source.mkString.split(" ") for(w<-tockens){ println(w.toInt) } //另外一種方法 val numbers = for(w<-tockens) yield w.toDouble for(num<-numbers){ println(num) } //另外一種方法 val numbers2 = tockens.map(_.toDouble) } }
從URL或其餘源讀取調試
//讀取非文件源的方法 object URLIO{ def main(args:Array[String]):Unit={ //從URL讀取 val source= Source.fromURL("http://www.baidu.com","UTF-8") val lineIterator =source.getLines for(l<-lineIterator){ println(l.toString()) } //從給定的字符串讀取--調試有用 val source2= Source.fromString("Hello world") //從標準輸入讀取 val source3 = Source.stdin } }
運行結果爲網址的htmlhtm
讀取二進制文件對象
Scala沒有提供讀取二進制文件的方法,須要使用Java類庫
object URLIO{ def main(args:Array[String]):Unit={ val file = new File("F:\\info.bin") val in = new FileInputStream(file) val bytes = new Array[Byte](file.length.toInt) in.read(bytes) in.close } }
寫入文本文件
object WriteIO{ def main(args:Array[String]):Unit={ val out = new PrintWriter("F:\\numbers.txt") for(i<-1 to 100) out.println(i) out.close } }