Kotlin 文件与字节数组相互转换的程序

在我们将文件转换为字节数组并反之亦然之前,我们假设我们的 src 文件夹中有一个名为 test.txt 的文件。

这是 test.txt 的内容

This is a
Test file.

示例 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 将文件转换为 byte[] 并反之亦然的程序

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战