Kotlin学习笔记(11)--IO操作
文件读写操作
IO操作
Kotlin 提供了多种方式进行输入输出操作,包括读取文件、写入文件等。可以使用标准库中的 java.io 包或更现代的 kotlin.io 工具。
文件读写
读取文件
import java.io.File
fun main() {
val filePath = "example.txt"
val file = File(filePath)
if (file.exists()) {
val content = file.readText()
println("File Content:\n$content")
} else {
println("File does not exist.")
}
}
写入文件
import java.io.File
fun main() {
val filePath = "output.txt"
val file = File(filePath)
val textToWrite = "Hello, Kotlin IO!"
file.writeText(textToWrite)
println("Text written to $filePath")
}
追加内容到文件
import java.io.File
fun main() {
val filePath = "output.txt"
val file = File(filePath)
val additionalText = "\nAppending new line."
file.appendText(additionalText)
println("Text appended to $filePath")
}
BufferedReader 和 BufferedWriter
BufferedReader 读取文件
import java.io.BufferedReader
import java.io.File
import java.io.FileReader
fun main() {
val filePath = "largeFile.txt"
val file = File(filePath)
if (file.exists()) {
BufferedReader(FileReader(file)).use { reader ->
var line: String?
while (reader.readLine().also { line = it } != null) {
println(line)
}
}
} else {
println("File does not exist.")
}
}
use函数类似于Java 的 try with resource,在使用完后,会自动关闭资源。
BufferedWriter 写入文件
import java.io.BufferedWriter
import java.io.File
import java.io.FileWriter
fun bufferedWriterExample(filePath: String, content: List<String>) {
val file = File(filePath)
BufferedWriter(FileWriter(file)).use { writer ->
for (line in content) {
writer.write(line)
writer.newLine()
}
}
}
InputStream 和 OutputStream
使用 InputStream 读取二进制文件
import java.io.File
import java.io.FileInputStream
fun readBinaryFile(filePath: String): ByteArray? {
val file = File(filePath)
return if (file.exists()) {
FileInputStream(file).use { inputStream ->
inputStream.readBytes()
}
} else {
println("文件不存在")
null
}
}
使用 OutputStream 写入二进制文件
import java.io.File
import java.io.FileOutputStream
fun writeBinaryFile(filePath: String, data: ByteArray) {
val file = File(filePath)
FileOutputStream(file).use { outputStream ->
outputStream.write(data)
}
}
NIO
使用 NIO 读写文件
读取文件内容
import java.nio.file.Files
import java.nio.file.Paths
fun nioReadFile(filePath: String): String? {
return try {
val path = Paths.get(filePath)
Files.readString(path)
} catch (e: IOException) {
println("读取文件时发生错误: ${e.message}")
null
}
}
写入文件内容
import java.nio.file.Files
import java.nio.file.Paths
import java.nio.charset.StandardCharsets
fun nioWriteFile(filePath: String, content: String) {
try {
val path = Paths.get(filePath)
Files.writeString(path, content, StandardCharsets.UTF_8)
} catch (e: IOException) {
println("写入文件时发生错误: ${e.message}")
}
}

浙公网安备 33010602011771号