Base64でエンコードするコードです。 どこにでも載ってそうなモノですが、次のネタ(データURIスキームがちょっと出てくる)で使うので一応掲載。 リダイレクトして使う事を想定。
java SimpleBase64Encoder pin.png > res.txt
お約束的なことですが、sun.misc.BASE64Encoderはいつ消えるか分からないので注意。 そういうわけでコンパイル時に警告も出ます。
import java.io.File; import java.io.FileInputStream; import sun.misc.BASE64Encoder; public class SimpleBase64Encoder { public static final long MAX_FILE_SIZE = 1000000; public static void main(String[] args) { if(args.length != 1) { System.err.println("第1引数のファイルをbase64でエンコードします。標準出力に出力します。"); return; } File file = new File(args[0] ); long len = file.length(); if(MAX_FILE_SIZE < len) { System.err.println("ファイルサイズが大きすぎる。"); return; } try(FileInputStream fis = new FileInputStream(file) ) { byte[] data = new byte[ (int)len]; long readLen = fis.read(data); if(len != readLen) { System.err.println("ファイル読み込み失敗"); return; } BASE64Encoder encoder = new BASE64Encoder(); System.out.println(encoder.encodeBuffer(data) ); } catch(Exception exc) { System.err.println("ファイル読み込み or 変換失敗"); exc.printStackTrace(); } } }