scala - 文件IO
第一:读
1、读取行
导入scala.io.Source后,即可引用Source中的方法读取文件信息。
import scala.io.Source object FileDemo extends App{ val source = Source.fromFile("C:/Users/admin/res.txt") //返回一个迭代器 val lines = source.getLines() for(i <- lines) println(i) //内容也可以放到数组中 // val arr = source.getLines().toArray // for(elem <- arr) // println(elem) //文件内容直接转换成一个字符串 // val contents = source.mkString // println(contents) }
2、读取字符
按字符读取文件中的内容
import scala.io.Source object FileDemo extends App{ val source = Source.fromFile("C:/Users/admin/res.txt") for(c <- source) println(c) }
3、读取单词
把文件中的内容,转换成一个单词的数组
import scala.io.Source object FileDemo extends App{ val source = Source.fromFile("C:/Users/admin/res.txt") val contents = source.mkString.split(" ") for(word <- contents) println(word) }
4、读取网络文件
import scala.io.Source object FileDemo extends App{ val source = Source.fromURL("http://www.baidu.com") val lines = source.getLines() for(i <- lines) println(i) }
5、指定字符集UTF-8
val source1 = scala.oi.Source.fromURL(filepath,"UTF-8" )
val source2 = scala.oi.Source.fromFile(filepath,"UTF-8" )
println(source.mkString)
6、读取二进制文件
Scala 不支持直接读取二进制文件,但是可以通过调用 Java 的 InputStream 来进行读入
// 读取二进制文件 val file = new File("d:\\test\\test.war") // 构造一个 InputStream val in = new FileInputStream(file) // 构造一个 buffer val buffer = new Array[Byte](file.length().toInt) // 读取 in.read(buffer) // 关闭 in.close()
第二:写
scala 没有内建的对写入文件的支持,要写入文件,使用Java.io.PrintWriter
val out = new PrintWriter("numbers.txt") for(i <- 1 to 100) out.println(i) out.close