目次
インフラ構築と自動化が得意。TerraformとAnsibleでインフラを自動構築するお仕事が多め
工作HardwareHubからのお知らせ
ビルドツールの設定
OpenCSV を利用します。
pom.xml (maven)
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>3.7</version>
</dependency>
build.sbt (sbt)
libraryDependencies += "com.opencsv" % "opencsv" % "3.7"
サンプルコード
読み込み
sample.csv
1,2,3
4,5,6
Main.scala
import com.opencsv.CSVReader
import scala.util.control.Breaks._
import java.io.FileReader
object Main {
def main(args: Array[String]): Unit = {
val reader = new CSVReader(new FileReader("sample.csv"))
breakable {
while(true) {
val line = reader.readNext
if (line == null) {
break
}
for(col <- line) { // Array[String]
print(' ' + col)
}
println
}
}
}
}
TSV
val reader = new CSVReader(new FileReader("sample.tsv"), '\t')
エンコーディング指定
インポート文の変更
import java.io.FileReader
↓
import java.io.{FileInputStream, InputStreamReader}
Reader の差し替え
val reader = new CSVReader(new FileReader("sample.csv"))
↓
val fis = new FileInputStream("sample.csv")
val isr = new InputStreamReader(fis, "Shift_JIS")
val reader = new CSVReader(isr)
書き込み
import com.opencsv.CSVWriter
import java.io.FileWriter
object Main {
def main(args: Array[String]): Unit = {
val writer = new CSVWriter(new FileWriter("output.csv"))
val strArr = Array("a", "b", "c")
writer.writeNext(strArr)
writer.flush // これがないと出力されないことがあります。
}
}
TSV
val writer = new CSVWriter(new FileWriter("output.tsv"), '\t')
エンコーディング指定
インポート文の変更
import java.io.FileWriter
↓
import java.io.{FileOutputStream, OutputStreamWriter}
Writer の差し替え
val writer = new CSVWriter(new FileWriter("output.csv"))
↓
val fos = new FileOutputStream("output.csv")
val osw = new OutputStreamWriter(fos, "Shift_JIS")
val writer = new CSVWriter(osw)
0
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。
関連記事
- Scala 文字列の処理書式指定 object Main { def main(args: Array[String]): Unit = { println("%d + %d = %d".format(1, 1, 2)) //=> 1 + 1 = 2 } } 文字列の比較 ヒアドキュメント 他の言語でいう「ヒアドキュメント」のようなものは """ で囲うことで実現できます。 object Main ...
- Scala 日付に関する処理Date クラスを文字列にフォーマット import java.util.Date object Main { def main(args: Array[String]): Unit = { // format は Date に限らない文字列用の機能です。 println("%d-%d-%d" format (1, 1, 1)) //=> 1-1-1 printl...
- 酢豚の基本的な使い方 (sbt)sbt は Scala および Java を主な対象としたビルドツールです。Scala Build Tool の略ではありませんが、Simple Build Tool という明示的な記述も公式ドキュメントなどには見当りません。以下 sbt の基本的な使用例をまとめます。使用した sbt のバージョンは 0.13 です。 公式ドキュメント [sbt 0.13](http://www.scala-sb...
- Scala 関数のサンプルコード「デフォルト引数」および「Unit 型を返す関数」 object HelloWorld { def main(args: Array[String]): Unit = { def myPrint(myArg: String = "default_value") = println(myArg + "!") val result = myPrint() //=> defau...
- Scala 組み込みの制御構造if-else 条件分岐で知られる if-else は三項演算子のようにも使用されます。 object HelloWorld { def main(args: Array[String]): Unit = { val myVal = if (!args.isEmpty) args(0) else "default" println(myVal) } ...