跳到主要内容

Kotlin 程序:将文件转换为字节数组及其反向操作

在我们将文件转换为字节数组以及反向操作之前,我们假设在我们的src文件夹中有一个名为test.txt的文件。

以下是test.txt的内容:

这是一个
测试文件。

示例1:将文件转换为byte[]

import java.io.IOException
import java.nio.file.Files
import java.nio.file.Paths
import java.util.Arrays

fun main(args: Array<String>) {

val path = System.getProperty("user.dir") + "\\src\\test.txt"

try {
val encoded = Files.readAllBytes(Paths.get(path))
println(Arrays.toString(encoded))
} catch (e: IOException) {

}
}

当您运行该程序时,输出将为:

[84, 104, 105, 115, 32, 105, 115, 32, 97, 13, 10, 84, 101, 115, 116, 32, 102, 105, 108, 101, 46]

在上面的程序中,我们将文件路径存储在变量path中。

然后,在try块内,我们使用readAllBytes()方法从给定路径中读取所有字节。

接下来,我们使用ArraystoString()方法来打印字节数组。

由于readAllBytes()可能会抛出IOException,因此我们在程序中使用了try-catch块。

示例2:将byte[]转换为文件

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

fun main(args: Array<String>) {

val path = System.getProperty("user.dir") + "\\src\\test.txt"
val finalPath = System.getProperty("user.dir") + "\\src\\final.txt"

try {
val encoded = Files.readAllBytes(Paths.get(path))
Files.write(Paths.get(finalPath), encoded)
} catch (e: IOException) {

}

}

当您运行该程序时,test.txt的内容将被复制到final.txt中。

在上面的程序中,我们使用与示例1相同的方法从存储在path中的文件中读取所有字节。这些字节存储在数组encoded中。

我们还有一个finalPath,用于将字节写入其中。

然后,我们简单地使用Fileswrite()方法将编码的字节数组写入给定finalPath中的文件。

以下是等效的Java代码:Java程序将文件转换为字节数组以及反向操作