Kotlin:
テキストファイルの読み込み
How to:
import java.io.File
fun readFileAsLines(fileName: String): List<String> = File(fileName).readLines()
fun main() {
val lines = readFileAsLines("example.txt")
lines.forEach { println(it) }
}
サンプル出力:
最初の行です
次の行です
さらに、もう一行です
Deep Dive
簡単にファイルを読む方法は色々あります。readLines()
を使うと一行ずつリストとして読み込めますが、大きなファイルには適していません。その場合には、bufferedReader()
を使ってメモリを節約しながら読み込みます。
fun readFileWithBufferedReader(fileName: String) {
File(fileName).bufferedReader().use { reader ->
var line = reader.readLine()
while (line != null) {
println(line)
line = reader.readLine()
}
}
}
古い方法には FileInputStream
や Scanner
がありますが、Kotlinではもっと読みやすい関数が用意されています。
ファイルの読み込みではエラー処理も重要です。例えば、ファイルが見つからない、読み取り権限がない等の状況では、適切にエラーを処理するコードが必要です。
See Also
- Kotlin公式ドキュメント: Reading and writing files
- Java公式ガイド: BufferedReader
- Kotlinによるファイル読み込みのさらに多くの例: Kotlin’s use-site variance