文件读写-全文单词统计

52 阅读1分钟

(一)任务分析

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

  2. 写程序分析数据。

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

(二)从文件中读出内容

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

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

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

作用:读入一个文件

提问:如果想要直接得到文本文件,怎么办呢?

使用mkString方法即可。

import scala.io.Source

val content = Source.fromFile("example.txt").mkString

println(content)

(三)写拆分单词统计个数

提问:现在读出了全部的文本内容,如何去分析每个单词的个数?

思路

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

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

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

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

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

(四)对Map结果排序

提问:现在如何对结果进行排序呢?

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

(五)结果写入

使用java.io.PrintWriter写入文件的示例:

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:写入一行