转载

[Scala基础系列 09]Scala文件IO、正则表达式

1.文件IO

Scala的IO主要是对java的IO进行简单的封装.

1.1.读取本地文件

package com.tv189.test  import java.io.{File, PrintWriter}  import scala.io.Source  /**  * Created by molyeo on 2015/8/12.  */ object FileOps {   def main(args: Array[String]) {     val file = Source.fromFile("E://FileOps.txt")     for (line <- file.getLines) {       println(line)     }     file.close   } }

其中FileOps.txt文件内容就是代码内容,控制台输出和代码一样。

1.2.读取网页内容

Scala读取网页内容比较方便,比如读取博客内容可采用如下代码。

package com.tv189.test  import java.io.{File, PrintWriter}  import scala.io.Source  /**  * Created by molyeo on 2015/8/12.  */ object FileOps {   def main(args: Array[String]) {     val webFile = Source.fromURL("http://www.cnblogs.com/molyeo/")     webFile.foreach(print)     webFile.close   } }

1.3.采用java的IO

Scala可以无缝使用java的IO,比如输出0到10的内容,由于scalaFile.txt没有指定路径,则在当前项目下面生成scalaFile.txt文件

package com.tv189.test  import java.io.{File, PrintWriter}   /**  * Created by molyeo on 2015/8/12.  */ object FileOps {   def main(args: Array[String]) {     val writer = new PrintWriter(new File("scalaFile.txt"))     for (i <- 1 to 10) writer.println(i)     writer.close()   } }

2.正则表达式

正则表达式的构成和匹配模式可以参考 java.util.regex.Pattern 类,不过scala中正则表达式和模式匹配结合起来可以实现强大的功能。

object RegExpressOps {    def main(args: Array[String]): Unit = {          val regex="""([0-9]+) ([a-z]+)""".r     val numPattern = "[0-9]+".r     val numberPattern = """/s+[0-9]+/s+""".r     val date = """(/d/d/d/d)-(/d/d)-(/d/d)""".r     "2015-08-12" match {       case date(year, month, day) => println(s"$year was a good year for PLs.")     }          for (matchString <- numPattern.findAllIn("99345 Scala, 22298 Spark")) println(matchString)     println(numberPattern.findFirstIn("99ss java, 222 hadoop 223"))      val numitemPattern="""([0-9]+) ([a-z]+)""".r     val line = "999 spark"     line match{       case numitemPattern(num, blog) => println(num + " " + blog)       case _ => println("Oops...")     }   } }

其中 findFirstIn 方法返回值为遍历所有匹配项的迭代器,而findFirstIn方法则返回匹配项的第一个值,此外Regex还有很多其他强大的方法,不在赘述。

[Scala基础系列 09]Scala文件IO、正则表达式

正文到此结束
Loading...