scala-文件IO

来源:互联网 发布:mac 必备软件 编辑:程序博客网 时间:2024/04/29 17:55

scala读取文件:

import scala.io.Sourceval source = Source.fromFile("myfile.txt","UTF-8")//第一个参数可以是字符串或者是java.io.File;第二个参数可选val lineIterator = source.getLinesfor (l <- lineIterator) print l 

可以用toArray或toBuffer方法将行放到数组或数组缓冲中:

val lines = source.getLines.toArray

把整个文件读成一个字符串:

val contents = source.mkStringval tokens = contents.split("\\s+")val numbers = for (w <= tokens) yield w.toDouleval numbers = tokens.map(_.toDoule)

从其它源读取:

val source1 = Source.fromURL("http://","UTF-8")val source2 = Source.fromString("")val source3 = Source.stdin //从标准输入读取

使用java的类库读写:

import java.io.Fileval file = new File(filename)val in = new FileInputStream(file)val bytes = new Array[Byte](file.length.toInt)//读取二进制文件in.read(bytes)in.close() val out = new PrintWriter("numbers.txt")//写文本文件for (i <- 1 to 100) out.println(i)out.close()//访问目录def subdirs(dir:File):Iterator[File] = {val children = dir.listFiles.filter(_.isDirectory)children.toIterator ++ children.toIterator.flatMap(subdirs _)}for (d <- subdirs(dir)) 处理d


来自<<快学scala>>读书整理

0 0
原创粉丝点击