文件读写-全文单词统计

32 阅读1分钟

一.从文件中读取内容

  1. 把文字内容从.txt文件中读到内存中。
  2. 写程序分析数据。
  3. 把结果写入.txt文件。
  4. 格式:scala.io.Source.formFile(文件名)
def main(args: Array[String]): Unit = {
  //1.读入文件
  val content = scala.io.Source.fromFile("score.txt").mkString
  println(content)
}
def main(args: Array[String]): Unit = {
  //1.读入文件
  val lines = scala.io.Source.fromFile("score.txt").getLines()
  lines.next()//跳过第一行
  while(lines.hasNext){
    val line = lines.next
    
  

二.字符串拆分

    //字符串拆分
    val li = line.split(",")
    val name = li(0)
    val yuwen = li(1)
    println(s"${name},${yuwen}")
  }
}

输出为: image.png

三.计算

  //2.计算
  stuList.foreach ( stu =>{
    val total = stu.yuwen + stu.shuxue + stu.yingyu
    val avg = total / 3
    println(s"${stu.name}, 总分: $total, 平均分: $avg")
  })
  println("计算结束,开始写入")
  //3.保存结果
  val fileWriter = new FileWriter("score_result.txt")
  fileWriter.write("高三19班成绩单 \n");
  stuList.foreach(stu => {
    val total = stu.yuwen +stu.yingyu + stu.shuxue
    val avg = total / 3
    fileWriter.write(s"${stu.name}, 总分:${total} 平均分:${avg} \n")
  })
  fileWriter.close()
}

image.png

  //3.保存结果
  val fileWriter = new FileWriter("score_result.txt")
  fileWriter.write("高三19班成绩单 \n");
  stuList.foreach(stu => {
    val total = stu.yuwen +stu.yingyu + stu.shuxue
    val avg = total / 3
    fileWriter.write(s"${stu.name}, 总分:${total} 平均分:${avg} \n")
  })
  fileWriter.write(s"语文最高分:${stuList.map(_.yuwen).max} \n")
  fileWriter.write(s"数学最高分:${stuList.map(_.shuxue).max} \n")
  fileWriter.write(s"英语最高分:${stuList.map(_.yingyu ).max} \n")
  fileWriter.close()
}