Scala文件读写操作与正则表达式 Scala语言提供了多种文件读写操作的方式,包括读取文本文件、读取二进制文件等。在Scala中,可以使用scala.io.Source对象来读取文件,该对象提供了多种方法来读取文件,例如getLines()方法可以读取文件的所有行,mkString()方法可以将文件的内容作为字符串输出。 读取文本文件 在Scala中,可以使用scala.io.Source对象来读取文本文件。例如,可以使用下面的代码来读取文件的所有行: ```scala val source = Source.fromFile("a.txt", "utf-8") val lineIterator = source.getLines for (i <- lineIterator) println(i) ``` 也可以使用迭代器应用toArray或toBuffer方法,将这些行放到数组力或者数组缓冲行中。 如果想将读取的文件作为一个字符串,只需使用mkString()方法: ```scala val contents = source.mkString ``` 读取单个字符 要将文件中读取单个字符,可以把Source对象当作迭代器,若仅仅只是想查看字符可以调用Source对象的buffered方法。 读取词法单元和数字 读取源文件中所有空格隔开的词法单元可以使用mkString()方法和split()方法: ```scala val tokens = source.mkString.split("\\s+") ``` 若有个基本都是浮点型的文件,可以将其读取到数组中: ```scala val numbers = for (w <- tokens) yield w.toDouble ``` 或者也可以使用map()方法: ```scala val numbers = tokens.map(_.toDouble) ``` 正则表达式 Scala语言提供了对正则表达式的支持,可以使用scala.util.matching.Regex对象来使用正则表达式。例如,可以使用下面的代码来匹配字符串: ```scala val regex = "hello".r val str = "hello world" if (str match regex) println("匹配成功") ``` 也可以使用for表达式来匹配字符串: ```scala val regex = "hello".r val str = "hello world" for (regex(x, y) <- regex.regex(str)) println(x, y) ``` 写入文本文件 在Scala中,可以使用java的PrintWriter对象来写入文本文件。例如,可以使用下面的代码来写入文件: ```scala val writer = new PrintWriter("a.txt") writer.println("Hello, World!") writer.close() ``` Scala语言提供了多种文件读写操作的方式,可以满足不同的需求。同时,Scala也提供了对正则表达式的支持,可以方便地进行字符串匹配等操作。
- 粉丝: 4
- 资源: 908
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助