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 path1 = Paths.get("D:\\Test3\\test1.txt")
// val charset = Charset.forName("MS932")
val charset = Charset.forName("UTF-8") //文字コード
try {
val line = Files.readAllLines(path1, charset)
for (s in line) {
println(s)
}
} catch (e: IOException) {
e.printStackTrace()
}
}
7,8行目は、getメソッドで読み込むファイルを指定しPathオブジェクトを取得しています。
7行目は引数が2つで8行目は引数が1つです。どちらでも可能です。
10,11行目は、forNameメソッドで文字コードを指定しています。MS932≒shift_jisです。
14行目は、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.ArrayList
fun main() {
// val path1 = Paths.get("D:\\Test3", "test1.txt")
val path1 = Paths.get("D:\\Test3\\test1.txt") //パス
// val charset = Charset.forName("MS932")
val charset = Charset.forName("UTF-8") //文字コード
val list: List<String> = ArrayList(listOf("赤", "黄", "青"))
try {
Files.write(
path1, list, charset,
StandardOpenOption.TRUNCATE_EXISTING
)
} catch (e: IOException) {
e.printStackTrace()
}
}
9,10行目は、getメソッドで書き込むファイルを指定しPathオブジェクトを取得しています。
9行目は引数が2つで10行目は引数が1つです。どちらでも可能です。
12,13行目は、forNameメソッドで文字コードを指定しています。MS932≒shift_jisです。
15行目は、リストです。ファイルに書き込む内容です。
18行目は、writeメソッドです。StandardOpenOption.TRUNCATE_EXISTINGで新規書き込みを指定しています。
StandardOpenOption.APPENDにすると追記書き込みになります。
関連の記事