多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Kotlin 程序:将文件转换为字节数组,反之亦然 > 原文: [https://www.programiz.com/kotlin-programming/examples/convert-file-byte-array](https://www.programiz.com/kotlin-programming/examples/convert-file-byte-array) #### 在此程序中,您将学习在 Kotlin 中将`File`对象转换为`byte[]`,反之亦然。 在将文件转换为字节数组之前,反之亦然,我们假设在`src`文件夹中有一个名为`test.txt`的文件。 这是`test.txt`的内容 ```kt This is a Test file. ``` ## 示例 1:将文件转换为`byte[]` ```kt 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) { } } ``` 运行该程序时,输出为: ```kt [84, 104, 105, 115, 32, 105, 115, 32, 97, 13, 10, 84, 101, 115, 116, 32, 102, 105, 108, 101, 46] ``` 在上面的程序中,我们将文件的路径存储在变量`path`中。 然后,在`try`块内部,我们使用`readAllBytes()`方法从给定的`pth`读取所有字节。 然后,我们使用`Arrays`的`toString()`方法来打印字节数组。 由于`readAllBytes()`可能会抛出`IOException`,因此我们在程序中使用了`try-catch`块。 * * * ## 示例 2:将`byte[]`转换为文件 ```kt 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`,其中要写入字节。 然后,我们仅使用`Files`的`write()`方法将编码的字节数组写入给定`finalPath`中的文件中。 以下是等效的 Java 代码: [Java 程序:将`File`转换为`byte[]`,反之亦然](/java-programming/examples/convert-file-byte-array "Java program to convert File to byte[] and vice-versa")。