文件读写(成绩分析)

43 阅读1分钟

任务分析

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

  2. 写程序分析数据。

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

文件:
姓名,语文,英语,数学
喜羊羊,9098100
美羊羊,1009993
懒羊羊,204050
沸羊羊,90102
暖羊羊,304020
代码:
package score

import java.io.FileWriter

object score01 {
  case class Stu(name:String, yuwen:Double, shuxue:Double,yingyu:Double)
  def main(args: Array[String]): Unit = {
    // 0. 创建一个可变list
    val stulist = scala.collection.mutable.ListBuffer[Stu]()
    // 1. 读入文件 迭代器
    val lines = scala.io.Source.fromFile("score.txt").getLines()
    lines.next() // 跳过第一行
    while(lines.hasNext){
      val line = lines.next()
      // 字符串拆分
      val li = line.split(",")
      stulist += Stu(li(0), li(1).toDouble, li(2).toDouble, li(3).toDouble)
    }
    // 读入数据结果
    println("读入数据结束")
    println("计算结束,开始写入")
    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()
  }
}