В этой программе вы научитесь преобразовывать объект File в byte () и наоборот в Kotlin.
Прежде чем преобразовать файл в байтовый массив и наоборот, мы предполагаем, что у нас есть файл с именем test.txt в нашей папке src .
Вот содержимое test.txt
Это тестовый файл.
Пример 1: преобразовать файл в байтовый ()
import java.io.IOException import java.nio.file.Files import java.nio.file.Paths import java.util.Arrays fun main(args: Array) ( 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 мы читаем все байты из заданного pth using readAllBytes()
method.
Затем мы используем Arrays
" toString()
метод для печати массива байт.
Поскольку, readAllBytes()
might throw an IOException
, мы использовали этот try-catch
блок в программе.
Пример 2: преобразовать byte () в файл
import java.io.IOException import java.nio.file.Files import java.nio.file.Paths fun main(args: Array) ( 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. Эти байты хранятся в закодированном массиве.
У нас также есть finalPath, куда должны быть записаны байты.
Затем мы просто используем метод Files
' write()
для записи закодированного байтового массива в файл в заданном finalPath.
Вот эквивалентный код Java: программа Java для преобразования файла в byte () и наоборот.