Kotlin 读取文件教程
最后修改于 2024 年 1 月 29 日
本文展示了如何在 Kotlin 中读取文件。 我们展示了在 Kotlin 中读取文件的几种方法。
在本文中,我们使用 File
方法读取文件。
本教程提供了五个在 Kotlin 中读取文件的示例。
thermopylae.txt
The Battle of Thermopylae was fought between an alliance of Greek city-states, led by King Leonidas of Sparta, and the Persian Empire of Xerxes I over the course of three days, during the second Persian invasion of Greece.
在示例中,我们使用此文本文件。
Kotlin 使用 File.readLines 读取文件
File.readLines
将文件内容作为行列表读取。 不应将其用于大文件。
readfile.kt
package com.zetcode import java.io.File fun main() { val fileName = "src/resources/thermopylae.txt" val lines: List<String> = File(fileName).readLines() lines.forEach { line -> println(line) } }
该示例使用 File.readLines
读取文件。
Kotlin 使用 File.useLines 读取文件
File.useLines
将所有数据作为行列表读取,并将其提供给回调。 它在最后关闭读取器。
readfile2.kt
package com.zetcode import java.io.File fun main() { val fileName = "src/resources/thermopylae.txt" val myList = mutableListOf<String>() File(fileName).useLines { lines -> myList.addAll(lines) } myList.forEachIndexed { i, line -> println("${i}: " + line) } }
该示例读取一个文件并将其打印到控制台。 我们向输出添加行号。
val myList = mutableListOf<String>()
创建一个可变列表。
File(fileName).useLines { lines -> myList.addAll(lines) }
使用 File.useLines
,我们将行列表复制到上面创建的可变列表中。
myList.forEachIndexed { i, line -> println("${i}: " + line) }
使用 forEachIndexed
,我们向每一行添加行号。
Kotlin 使用 File.readText 读取文件
File.readText
将此文件的全部内容作为 String
获取。 不建议对大型文件使用此方法。
readfile3.kt
package com.zetcode import java.io.File fun main() { val fileName = "src/resources/thermopylae.txt" val content = File(fileName).readText() println(content) }
在示例中,我们将整个文件读入一个字符串并将其打印到控制台。
Kotlin 使用 InputStream 读取文件
InputStream
是一个字节输入流。
readfile4.kt
package com.zetcode import java.io.File import java.io.InputStream import java.nio.charset.Charset fun main() { val fileName = "src/resources/thermopylae.txt" val myFile = File(fileName) var ins: InputStream = myFile.inputStream() var content = ins.readBytes().toString(Charset.defaultCharset()) println(content) }
该示例从 File
创建一个 InputStream
并从中读取字节。 这些字节被转换为文本。
var ins: InputStream = myFile.inputStream()
使用 inputStream
从 File
创建一个 InputStream
。
var content = ins.readBytes().toString(Charset.defaultCharset())
我们使用 readBytes
从 InputStream
读取字节,并使用 toString
将字节转换为文本。
Kotlin 使用 readBytes 读取文件
readBytes
将文件的全部内容作为字节数组读取。 不建议对大型文件使用它。
readfile5.kt
package com.zetcode import java.io.File fun main() { val fileName = "src/resources/thermopylae.txt" val file = File(fileName) var bytes: ByteArray = file.readBytes() bytes.forEachIndexed { i, byte -> ( if (i == 0) { print("${byte} ") } else if (i % 10 == 0) { print("${byte} \n") } else { print("${byte} ") }) } }
该示例将文本文件读入字节数组。 它将文件作为数字打印到控制台。
来源
在本文中,我们展示了如何在 Kotlin 中读取文件。
作者
列出 所有 Kotlin 教程。