val csv_writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dest+"whatever"+".csv")))
for (x <-storeTimestamp ) {
csv_writer.write(x + "\n")
}
csv_writer.close()
有没有其他方法可以将2个字符串列表写入csv文件?
现在在我的代码中,我只在csv文件中写了1个字符串列表。如何从其他列表添加新列?
可以使用Bufferedwriter
吗?
答案 0 :(得分:1)
如果我理解了您的问题,那么您有一些CSV数据,并且您希望在将每行写入文件之前将新数据列添加到每行的末尾。
以下是我可以采取的措施。
// some pretend data
val origCSV = Seq("a,b,c", "d,e,f", "x,y,z")
val newCLMN = Seq("4X", "2W", "9A")
// put them together
val allData = origCSV.zip(newCLMN).map{case (a,b) => s"$a,$b\n"}
注意:zip
只会将两个集合压缩在一起,直到它们用完一个或另一个。它的数据留在较大的集合中然后被忽略。如果这不合适,那么您可以尝试zipAll
。
写入文件。
import java.io.{File, FileWriter}
import util.Try
val writer = Try(new FileWriter(new File("filename.csv")))
writer.map{w => w.write(allData.mkString); w}
.recoverWith{case e => e.printStackTrace(); writer}
.map(_.close())
结果是......
>> cat filename.csv
a,b,c,4X
d,e,f,2W
x,y,z,9A
>>