V tomto programu se naučíte převádět objekt File na byte () a naopak v Kotlin.
Než převedeme soubor na bajtové pole a naopak, předpokládáme, že v naší složce src máme soubor s názvem test.txt .
Tady je obsah souboru test.txt
Toto je testovací soubor.
Příklad 1: Převést soubor na byte ()
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) ( ) )
Když spustíte program, výstup bude:
(84, 104, 105, 115, 32, 105, 115, 32, 97, 13, 10, 84, 101, 115, 116, 32, 102, 105, 108, 101, 46)
Ve výše uvedeném programu uložíme cestu k souboru do proměnné cesty.
Potom uvnitř bloku try načteme pomocí readAllBytes()
metody všechny bajty z dané pth .
Potom použijeme metodu Arrays
' toString()
k tisku bajtového pole.
Protože, readAllBytes()
může hodit IOException
, jsme použili try-catch
blok v programu.
Příklad 2: Převést byte () na soubor
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) ( ) )
Při spuštění programu se obsah souboru test.txt zkopíruje do souboru final.txt .
Ve výše uvedeném programu jsme použili stejnou metodu jako v příkladu 1 ke čtení všech bajtů ze souboru uloženého v cestě. Tyto bajty jsou uloženy v kódovaném poli.
Máme také finalPath, kde se mají zapisovat bajty.
Potom jednoduše použijeme metodu Files
' write()
k zápisu kódovaného bajtového pole do souboru v dané finalPath.
Tady je ekvivalentní kód Java: Program Java pro převod souboru na byte () a naopak.