任务:创建文件,在文件中打印同学的姓名,性别,成绩等内容
//1:读入文件 //2:计算 //每个同学的总分 //每个同学的平均分 //每个科目的最高分 //3:保存结果
一:在src中创建一个新的文件并录入数据
在文件中输入数据:
二:计算:
方法1:通过getLine转为迭代器并输出:
val content = scala.io.Source.fromFile("D:\涂新宇の主人
\txy01\src\score.txt").getLines()//geiLines:转为迭代器类型
content.next()//跳过表头
while(content.hasNext){//通过while循环得到迭代器数据
可通过: val line =content.next().split(",") 方法去除迭代器之中的","将line变为一个类似数组
val name = line(1)//第二行数据为姓名
val sex = line(2)//第三行为性别
val chinese = line(3).toDouble//第四五六行为成绩
val math = line(4).toDouble//
val english = line(5).toDouble//
val total = chinese + math + english
val mid = total / 3
List += Stu(line(1), line(3).toDouble,line(4).toDouble,line(5).toDouble)
println(s"学号:{name},性别:{chinese},数学成绩:{english},总成绩为:{mid}")
方法2:通过case class与list输出
先创建一个case class: case class Stu(name:String,chinese:Double,math:Double,english:Double)
创建一个可变list val List = scala.collection.mutable.ListBuffer【Stu】()
通过list的遍历输出结果
List.foreach(Stu => {
val total1 = Stu.chinese + Stu.math + Stu.english
val mid1 = total1/3
println(s"总分:${total1},平均分:${mid1}\n")
})
三:保存最终的结果:
通过new一个FileWriter并让系统创建一个新的文件录入结果
val fileWriter = new FileWriter("score_result.txt")
fileWriter.write("高三7班成绩单\n")
再通过二中list的遍历foreach方法得到结果并保存到新文件score_result.txt中
val fileWriter = new FileWriter("score_result.txt")
fileWriter.write("高三7班成绩单\n")
List.foreach(Stu => {
val total1 = Stu.chinese + Stu.math + Stu.english
val mid1 = total1/3
fileWriter.write(s"总分:${total1},平均分:${mid1}\n")
})
fileWriter.close()
结果: