Skip to content

Instantly share code, notes, and snippets.

@utsengar
Created October 11, 2011 00:27
Show Gist options
  • Star 35 You must be signed in to star a gist
  • Fork 11 You must be signed in to fork a gist
  • Save utsengar/1276960 to your computer and use it in GitHub Desktop.
Save utsengar/1276960 to your computer and use it in GitHub Desktop.
Encode a file to base64 binary in Java
import org.apache.commons.codec.binary.Base64;
private String encodeFileToBase64Binary(String fileName)
throws IOException {
File file = new File(fileName);
byte[] bytes = loadFile(file);
byte[] encoded = Base64.encodeBase64(bytes);
String encodedString = new String(encoded);
return encodedString;
}
private static byte[] loadFile(File file) throws IOException {
InputStream is = new FileInputStream(file);
long length = file.length();
if (length > Integer.MAX_VALUE) {
// File is too large
}
byte[] bytes = new byte[(int)length];
int offset = 0;
int numRead = 0;
while (offset < bytes.length
&& (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
}
if (offset < bytes.length) {
throw new IOException("Could not completely read file "+file.getName());
}
is.close();
return bytes;
}
@KingAmada
Copy link

A single line solution

byte[] bytes = Base64.getEncoder().encode(Files.readAllBytes(new File("filePath").toPath()));
System.out.print(bytes);

@manishboricha
Copy link

This is working like a charm, i am not converting image to string i just needed it in encoded format.....Thanks

@sheliyaparth
Copy link

Why not use Base64.encodeBase64String(bytes)?

@Zeriitas
Copy link

Guys cmon this was posted 10 years ago...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment