文件读写-全文单词统计

19 阅读1分钟

1任务分析

  1. 把文字内容从.txt文件中读到内存中。

  2. 写程序分析数据。

  3. 把结果写入.txt文件。

2从文件中读出内容

在scala中,涉及到文件读写的方法有很多,可以使用java.io下的工具包,也可以使用scala.io下的功能。

下面介绍source.fromFile这个方法。

格式:scala.io.Source.formFile(文件名)

作用:读入一个文件

3写拆分单词统计个数

思路:

1. 分隔出一个一个的单词。

2. 建立一个Map,key是单词,value是次数。

3. 遍历所有的单词,对每个单词来说:

判断单词是否存在,如果存在把对应的key+1;

否则就设置对应的key,且value为1

val words = inputString.split("\\W+")  
val wordCountMap = mutable.Map[String, Int]()  
for (word <- words) {  
  if (wordCountMap.contains(word)) {  
    wordCountMap(word) += 1  
  } else {  
    wordCountMap(word) = 1  
  }  
}

\\W+,表示一个非字符。

4对Map结果排序

Map本身是键值对,它是无序的。可以先转成List或者Seq,然后再排序。

5结果写入

import java.io.PrintWriter

object PrintWriterExample {

  def main(args: Array[String]) {

    val writer = new PrintWriter("output.txt")

    writer.write("Hello, Scala PrintWriter!")

    writer.close()

  }}

write:不会自动换行,可以加入\n; println:写入一行