Kotlin程序将文件(File)与字节数组(byte [])相互转换

Kotlin 实例大全

在此程序中,您将学习在Kotlin中将File对象转换为byte [],byte []转换为File对象。

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

这是test.txt的内容

This is a
Test file.

示例1:将文件(File)转换为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()方法从给定的path读取所有字节。

然后,我们使用Arrays的 toString()方法来打印字节数组。

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

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

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 中存储的File中读取所有字节。这些字节存储在数组 encoded 中。

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

然后,我们只需使用Files的write()方法将编码的字节数组写入给定finalPath中的文件。

这是等效的Java代码:将File转换为byte []的Java程序,反之亦然

Kotlin 实例大全