Konverzia reťazca z obrázka na Base64

1. Prehľad

V tomto rýchlom výučbe sa budeme venovať tomu, ako kódovať obrazový súbor do Base64 String, potom ho dekódujte, aby ste získali pôvodný obrázok pomocou funkcií Apache Common IO a Java 8 natívnych funkcií Base64.

Túto operáciu je možné použiť pre akékoľvek binárne súbory alebo binárne polia. Je to užitočné, keď potrebujeme preniesť binárny obsah vo formáte JSON, napríklad z mobilnej aplikácie do koncového bodu REST.

Viac informácií o konverzii Base64 nájdete v tomto článku tu.

2. Závislosť od Maven

Pridajme nasledujúce závislosti pom.xml spis:

 commons-io commons-io 2.6 

Najnovšiu verziu Apache Commons IO nájdete na serveri Maven Central.

3. Preveďte obrazový súbor na Base64 String

Najskôr si prečítajme obsah súboru v bajtovom poli a používajme Java 8 Base64 trieda na jeho zakódovanie:

byte [] fileContent = FileUtils.readFileToByteArray (nový súbor (filePath)); Reťazec encodedString = Base64.getEncoder (). EncodeToString (fileContent);

The encodedString je a String znakov v množine A-Za-z0-9 + /a dekodér odmietne všetky znaky mimo tejto sady.

4. Preveďte Base64 String do obrazového súboru

Teraz máme Base64 String, poďme ho dekódovať späť na binárny obsah a zapísať do nového súboru:

byte [] decodedBytes = Base64.getDecoder (). decode (encodedString); FileUtils.writeByteArrayToFile (nový súbor (outputFileName), decodedBytes);

5. Testovanie nášho kódexu

Nakoniec môžeme overiť, že kód funguje správne, a to načítaním súboru, ktorý ho kóduje do formátu Base64 Stringa dekódovanie späť do nového súboru:

verejná trieda FileToBase64StringConversionUnitTest {private String inputFilePath = "test_image.jpg"; private String outputFilePath = "test_image_copy.jpg"; @Test public void fileToBase64StringConversion () hodí IOException {// načítanie súboru z / src / test / resources ClassLoader classLoader = getClass (). GetClassLoader (); File inputFile = new File (classLoader .getResource (inputFilePath) .getFile ()); byte [] fileContent = FileUtils.readFileToByteArray (inputFile); Reťazec encodedString = Base64 .getEncoder () .encodeToString (fileContent); // vytvorenie výstupného súboru File outputFile = new File (inputFile .getParentFile () .getAbsolutePath () + File.pathSeparator + outputFilePath); // dekódujeme reťazec a zapisujeme do súboru bajt [] decodedBytes = Base64 .getDecoder () .decode (encodedString); FileUtils.writeByteArrayToFile (outputFile, decodedBytes); assertTrue (FileUtils.contentEquals (inputFile, outputFile)); }}

6. Záver

Tento článok obsahuje základné informácie o kódovaní obsahu ľubovoľného súboru do systému Base64 Stringa dekódovanie Base64 String do bajtového poľa a pomocou funkcií Apache Common IO a Java 8 ho uložte do súboru.

Útržky kódu ako vždy nájdete na GitHub.


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