Kotlin テキストファイルの読み書き

Kotlinのテキストファイルを読み書きするサンプルです。

目次

サンプル 読み込む(readAllLines)
  書き込む(write)

読み込む(readAllLines)

public static List<String> readAllLines(Path path, Charset cs) throws IOException

テキストファイルを読み1行ずつ表示するサンプルです。

import java.io.IOException
import java.nio.file.Files
import java.nio.charset.Charset
import java.nio.file.Paths

fun main() {
    val path1 = Paths.get("D:\\Test3", "test1.txt")
    val charset = Charset.forName("MS932")

    try {
        val line = Files.readAllLines(path1, charset)
        for (s in line) {
            println(s)
        }
    } catch (e: IOException) {
        e.printStackTrace()
    }
}

7行目は、Filesクラスで使用するPathオブジェクトを生成しています。
8行目は、文字コードを指定しています。
11行目は、FilesクラスのreadAllLinesメソッドでファイルを読み込んでいます。
引数は、パスと文字コードです。

 

書き込む(write)

public static Path write(Path path, Iterable<? extends CharSequence> lines,
Charset cs, OpenOption... options) throws IOException

テキストファイルに書き込むサンプルです。

import java.io.IOException
import java.nio.file.Files
import java.nio.charset.Charset
import java.nio.file.Paths
import java.nio.file.StandardOpenOption
import java.util.Arrays
import java.util.ArrayList

fun main() {
    val path1 = Paths.get("D:\\Test3", "test1.txt")
    val charset = Charset.forName("MS932")
    val list: List<String> = ArrayList(Arrays.asList("赤", "黄", "青"))

    try {
        Files.write(
            path1, list, charset,
            StandardOpenOption.TRUNCATE_EXISTING
        )
    } catch (e: IOException) {
        e.printStackTrace()
    }
}

10行目は、Filesクラスで使用するPathオブジェクトを生成しています。
11行目は、文字コードを指定しています。
12行目は、リストです。ファイルに書き込む内容です。
15行目は、writeメソッドです。文字コードは、MS932を指定しています。
17行目は、StandardOpenOption.TRUNCATE_EXISTINGで新規書き込みを指定しています。
StandardOpenOption.APPENDにすると追記書き込みになります。

関連の記事

Kotlin ListとMutableListのサンプル

△上に戻る