CSVを読み書きするライブラリ「opencsv」のラッパークラス
opencsv の CSVReader をラップして、CSVの1レコードずつ返す Iterator クラス。
import java.io._ import au.com.bytecode.opencsv.CSVReader class ScalaCSVReader(reader: Reader) extends Iterator[Array[String]] with Closeable { require(reader != null) private val csv = new CSVReader(reader) private var nextRow = csv.readNext override def hasNext = nextRow != null override def next = try { nextRow } finally { nextRow = csv.readNext } override def close { csv.close } }
使用例
val reader = new ScalaCSVReader(new FileReader("in.csv")) val rows: List[Array[String]] = try { reader.toList } finally { reader.close }