From ace948a705fc62c23b2d81e6f89aecbd9c340517 Mon Sep 17 00:00:00 2001 From: "nnhai1991@gmail.com" Date: Sun, 1 Jul 2018 17:25:39 +0800 Subject: [PATCH] BAEL-1846: Java Image to Base64 String --- .../FileToBase64StringConversion.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 core-java-8/src/main/java/com/baeldung/fileToBase64StringConversion/FileToBase64StringConversion.java diff --git a/core-java-8/src/main/java/com/baeldung/fileToBase64StringConversion/FileToBase64StringConversion.java b/core-java-8/src/main/java/com/baeldung/fileToBase64StringConversion/FileToBase64StringConversion.java new file mode 100644 index 0000000000..aa3bc9adee --- /dev/null +++ b/core-java-8/src/main/java/com/baeldung/fileToBase64StringConversion/FileToBase64StringConversion.java @@ -0,0 +1,32 @@ +package com.baeldung.fileToBase64StringConversion; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.Base64; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.FilenameUtils; + +public class FileToBase64StringConversion { + public static void main(String[] args) throws FileNotFoundException, IOException { + //read file path from first argument + String filePath = args[0]; + + byte[] fileContent = FileUtils.readFileToByteArray(new File(filePath)); + String encodedString = Base64.getEncoder().encodeToString(fileContent); + + //print encoded base64 String + System.out.println(encodedString); + + //construct output file name + String extension = FilenameUtils.getExtension(filePath); + String baseFileName = FilenameUtils.getBaseName(filePath); + String directory = new File(filePath).getParentFile().getAbsolutePath(); + String outputFileName = directory+File.separator+baseFileName+"_copy."+extension; + + //decode the string and write to file + byte[] decodedBytes = Base64.getDecoder().decode(encodedString); + FileUtils.writeByteArrayToFile(new File(outputFileName), decodedBytes); + } +}