🕌

KotlinでCSVファイル読み込み・書き込み📝

2024/03/28に公開

どうやってファイル操作するの?

Kotlinでファイルの操作処理を書く方法はいくつかありますが、今回はjava.ioパッケージのクラスを使用することで、CSVファイルを操作していきます。

使用するCSVファイル

test.csv
学籍番号,名前,所属学科
n20019,テスト1,TB
b20008,テスト2,UT

ファイル読み込み

Main.kt
import java.io.File

fun main() {
    val csvFilePath = "test.csv"
    val lines = File(csvFilePath).bufferedReader().use { it.readLines() }

    for (line in lines) {
        val elements = line.split(",")
        for (element in elements) {
            println(element)
        }
    }
}
出力結果
学籍番号
名前
所属学科
n20019
テスト1
TB
b20008
テスト2
UT

ファイル書き込み

Main.kt
import java.io.BufferedWriter
import java.io.FileWriter

fun main() {
    val csvFilePath = "test.csv"
    val students = arrayOf(arrayOf("a20098", "テスト3", "PO"),arrayOf("v20458", "テスト4", "PB"),arrayOf("m20100", "テスト5", "PO"))

    BufferedWriter(FileWriter(csvFilePath, true)).use { writer ->
        students.forEach { student ->
            writer.write(student.joinToString(","))
            writer.newLine()
        }
    }
}
書き込み後
学籍番号,名前,所属学科
n20019,テスト1,TB
b20008,テスト2,UT
a20098,テスト3,PO
v20458,テスト4,PB
m20100,テスト5,PO

おわりに

今回は、bufferedReader,Writerを使ってファイルの読み書きを行ってみました。Kotlinではjava.io.Fileへの拡張関数がFileReadWrite.ktで定義されているので、それを使うのも良いかもしれません。
もっとこうした方が良い!というのがあればコメントでお待ちしてます🙇

Discussion