תמונה להמרת מחרוזת Base64

1. סקירה כללית

במדריך מהיר זה, נסקור כיצד לקודד קובץ תמונה ל- Base64 חוּטואז פענח אותו כדי לאחזר את התמונה המקורית באמצעות תכונות Apache Common IO ו- Java 8 מקורי Base64.

ניתן ליישם פעולה זו עבור כל קבצים בינאריים או מערכים בינאריים. זה שימושי כשאנחנו צריכים להעביר תוכן בינארי בפורמט JSON כגון מאפליקציית מובייל לנקודת קצה של REST.

למידע נוסף על המרת Base64, עיין במאמר זה כאן.

2. תלות של Maven

בואו נוסיף את התלות הבאות ל- pom.xml קוֹבֶץ:

 commons-io commons-io 2.6 

תוכל למצוא את הגרסה האחרונה של Apache Commons IO ב- Maven Central.

3. המרת קובץ תמונה ל- Base64 חוּט

קודם כל, בואו נקרא את תוכן הקובץ למערך בתים ונשתמש בג'אווה 8 בסיס 64 כיתה לקידוד זה:

בייט [] fileContent = FileUtils.readFileToByteArray (קובץ חדש (filePath)); מחרוזת encodedString = Base64.getEncoder (). EncodeToString (fileContent);

ה encodedString הוא חוּט של דמויות בקבוצת A-Za-z0-9 + /, והמפענח דוחה כל תו מחוץ לסט זה.

4. המרת Base64 חוּט לקובץ תמונה

עכשיו יש לנו Base64 חוּט, בואו נפענח אותו לתוכן בינארי ונכתוב לקובץ חדש:

בתים [] decodedBytes = Base64.getDecoder (). decode (encodedString); FileUtils.writeByteArrayToFile (קובץ חדש (outputFileName), decodedBytes);

5. בדיקת הקוד שלנו

לבסוף, אנו יכולים לוודא שהקוד עובד כראוי על ידי קריאת קובץ, קידודו ל- Base64 חוּט, ופענוחו בחזרה לקובץ חדש:

מחלקה ציבורית FileToBase64StringConversionUnitTest {private String inputFilePath = "test_image.jpg"; פרטי מחרוזת outputFilePath = "test_image_copy.jpg"; @Test הריק הציבורי fileToBase64StringConversion () זורק IOException {// טוען קובץ מ / src / test / resources ClassLoader classLoader = getClass (). GetClassLoader (); קובץ inputFile = קובץ חדש (classLoader .getResource (inputFilePath) .getFile ()); בייט [] fileContent = FileUtils.readFileToByteArray (inputFile); מחרוזת encodedString = Base64 .getEncoder (). EncodeToString (fileContent); // ליצור קובץ פלט קובץ outputFile = קובץ חדש (inputFile .getParentFile () .getAbsolutePath () + File.pathSeparator + outputFilePath); // לפענח את המחרוזת ולכתוב לקובץ בתים [] decodedBytes = Base64 .getDecoder () .decode (encodedString); FileUtils.writeByteArrayToFile (outputFile, decodedBytes); assertTrue (FileUtils.contentEquals (inputFile, outputFile)); }}

6. מסקנה

מאמר זה לעניין מסביר את הבסיס של קידוד תוכן כל קובץ ל- Base64 חוּטופענוח Base64 חוּט למערך בתים ושמור אותו בקובץ באמצעות תכונות Apache Common IO ו- Java 8.

כמו תמיד, ניתן למצוא קטעי קוד ב- GitHub.


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