简单的 csv 读/写示例:
import java.io.{FileReader, FileWriter}
import java.nio.file.{Files, Paths}
import scala.collection.JavaConverters._
val data = Seq(
Seq("col1_data1", "col2_data1", "col3_data1", "col4_data1", 0),
Seq("col1_data2", "col2_data2", "col3_data2", "col4_data2", 10),
Seq("col1_data3", "col2_data3", "col3_data3", "col4_data3", 14),
Seq("col1_data4", "col2_data4", "col3_data4", "col4_data4", 10),
Seq("col1_data5", "col2_data5", "col3_data5", "col4_data5", 7),
Seq("col1_data6", "col2_data6", "col3_data6", "col4_data6", 23)
)
val fileName = "data.csv"
val ColumnSeparator = ","
val writer = new FileWriter(fileName, true)
try {
data.foreach{
line =>
writer.write(s"${line.map(_.toString).mkString(ColumnSeparator)}\n")
}
} finally {
writer.flush()
writer.close()
}
val reader = new FileReader(fileName)
val lastColValues = try {
Files.lines(Paths.get(fileName))
.iterator()
.asScala
.toSeq
.map(_.split(ColumnSeparator).last.toInt)
} finally {
reader.close()
}
val sumLastCol = lastColValues.sum
println(sumLastCol) // sum = 64
println(sumLastCol.toDouble / lastColValues.length) // mean = 10.666666666666666