V tem programu se boste v Kotlinu naučili pretvoriti objekt File v byte () in obratno.
Preden datoteko pretvorimo v bajtno matriko in obratno, predpostavimo, da imamo v mapi src datoteko z imenom test.txt .
Tukaj je vsebina test.txt
To je testna datoteka.
Primer 1: Pretvori datoteko v bajt ()
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) ( ) )
Ko zaženete program, bo rezultat:
(84, 104, 105, 115, 32, 105, 115, 32, 97, 13, 10, 84, 101, 115, 116, 32, 102, 105, 108, 101, 46)
V zgornjem programu pot do datoteke shranimo v spremenljivo pot.
Nato znotraj poskusnega bloka z readAllBytes()
metodo preberemo vse bajte iz danega pth .
Nato uporabimo metodo Arrays
' toString()
za tiskanje bajtne matrike.
Ker readAllBytes()
morda vržemo IOException
, smo try-catch
blok uporabili v programu.
2. primer: pretvorite bajt () v datoteko
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) ( ) )
Ko zaženete program, se vsebina test.txt kopira v final.txt .
V zgornjem programu smo uporabili enako metodo kot primer 1 za branje vseh bajtov iz datoteke, shranjene v poti. Ti bajti so shranjeni v kodirani matriki.
Imamo tudi finalPath, kjer naj bodo zapisani bajti.
Nato preprosto uporabimo metodo Files
', write()
da zapišemo kodirano bajtno matriko v datoteko v dani finalPath.
Tu je enakovredna koda Java: program Java za pretvorbo datoteke v bajt () in obratno.