Bilde til Base64 strengkonvertering

1. Oversikt

I denne raske opplæringen skal vi dekke hvordan vi koder bildefiler til en Base64 String, dekod det deretter for å hente det opprinnelige bildet ved hjelp av Apache Common IO og Java 8 native Base64-funksjoner.

Denne operasjonen kan brukes på alle binære filer eller binære matriser. Det er nyttig når vi trenger å overføre binært innhold i JSON-format, for eksempel fra mobilapp til REST-sluttpunkt.

For mer informasjon om Base64-konvertering, sjekk ut denne artikkelen her.

2. Maven avhengighet

La oss legge til følgende avhengigheter til pom.xml fil:

 commons-io commons-io 2.6 

Du finner den nyeste versjonen av Apache Commons IO på Maven Central.

3. Konverter bildefil til Base64 String

Først av alt, la oss lese filinnholdet til en byte-array og bruke Java 8 Base64 klasse for å kode det:

byte [] fileContent = FileUtils.readFileToByteArray (ny fil (filePath)); String encodedString = Base64.getEncoder (). EncodeToString (fileContent);

De kodetString er en String av tegn i settet med A-Za-z0-9 + /, og dekoderen avviser tegn utenfor dette settet.

4. Konverter Base64 String til bildefilen

Nå har vi en Base64 String, la oss dekode den tilbake til binært innhold og skrive til en ny fil:

byte [] decodedBytes = Base64.getDecoder (). decode (encodedString); FileUtils.writeByteArrayToFile (ny fil (outputFileName), dekodetBytes);

5. Testing av koden vår

Til slutt kan vi bekrefte at koden fungerer som den skal ved å lese en fil, kode den til en Base64 String, og dekoding den tilbake til en ny fil:

offentlig klasse FileToBase64StringConversionUnitTest {private String inputFilePath = "test_image.jpg"; private String outputFilePath = "test_image_copy.jpg"; @Test offentlig ugyldig filToBase64StringConversion () kaster IOException {// laster fil fra / src / test / resources ClassLoader classLoader = getClass (). GetClassLoader (); File inputFile = new File (classLoader .getResource (inputFilePath) .getFile ()); byte [] fileContent = FileUtils.readFileToByteArray (inputFile); String encodedString = Base64 .getEncoder () .encodeToString (fileContent); // lage utdatafil Fil outputFile = ny fil (inputFile .getParentFile () .getAbsolutePath () + File.pathSeparator + outputFilePath); // dekode strengen og skriv til filbyte [] decodedBytes = Base64 .getDecoder () .decode (encodedString); FileUtils.writeByteArrayToFile (outputFile, decodedBytes); assertTrue (FileUtils.contentEquals (inputFile, outputFile)); }}

6. Konklusjon

Denne detaljerte artikkelen forklarer det grunnleggende om å kode innholdet til en fil til en Base64 Stringog dekoding av en Base64 String til en byte-array og lagre den i en fil ved hjelp av Apache Common IO og Java 8-funksjoner.

Som alltid kan du finne kodebiter på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found