日曜日, 1月 03, 2016

scala - CSVファイルの読み込み

CSVファイルを読み込んで多重配列に保存するコードのメモ..

import resource._

import scala.io.Source

object CSVReadRunner extends CSVRead {
  def main(args:Array[String]):Unit = {
    val vals = read("C:\\tmp\\tankoneko.csv")
    println("done.")
  }
}

/**
  * Created by neko32 on 2016/01/03.
  */
trait CSVRead {
  def read(path:String):Array[Array[String]] = {
    val arr = Array.ofDim[String](4,2)
    for {
      out <- managed(Source.fromFile(path))
    } {
      for{ (line,i) <- out.getLines.zipWithIndex} {
        println(s"($i)@ILOOP")
        for{ (elem,j) <- line.split(",").map(_.trim).zipWithIndex} {
          println(s"($i,$j)@JLOOP")
          arr(i)(j) = elem
        }
      }
    }
    arr
  }
}

0 件のコメント: