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

 

posted @ 2021-01-11 14:37  快乐的张小凡  阅读(184)  评论(0编辑  收藏  举报