Skip to content

Instantly share code, notes, and snippets.

@komiya-atsushi
Created August 31, 2014 17:51
Show Gist options
  • Save komiya-atsushi/d878e6e4bf9ba6dae8fa to your computer and use it in GitHub Desktop.
Save komiya-atsushi/d878e6e4bf9ba6dae8fa to your computer and use it in GitHub Desktop.
Java 8 より導入された java.util.Base64 の利用デモ。
import java.io.PrintStream;
import java.util.Base64;
/**
* Java 8 より導入された java.util.Base64 の利用デモ。
*/
public class Base64Demo {
private static final PrintStream o = System.out;
public static void main(String[] args) {
エンコードとデコードのデモ();
_UrlEncoderのデモ();
_MimeEncoderのデモ();
}
static void エンコードとデコードのデモ() {
final String text = "いろはにほへと";
// エンコードは、Base64.getEncoder() で得られるオブジェクトを利用する
// Base64 エンコード結果を String としたい場合は、Encoder#encodeToString() を呼び出す
String encoded = Base64.getEncoder()
.encodeToString(text.getBytes());
// デコードは Base64.getDecoder() で得られるオブジェクトを利用する
String decoded = new String(Base64.getDecoder()
.decode(encoded));
o.println("# Base64.getEncoder() / Base64.getDecoder() のデモ");
o.println("エンコード結果 : " + encoded);
o.println("デコード結果 : " + decoded);
o.println();
}
static void _UrlEncoderのデモ() {
String text = "?????>";
// UrlEncoder だと、Base64 で使われる記号 +/ がそれぞれ -_ に置き換えられる
String encoded = Base64.getUrlEncoder()
.encodeToString(text.getBytes());
// デコーダは Base64.getUrlDecoder() で得られたものを使う必要がある
String decoded = new String(Base64.getUrlDecoder()
.decode(encoded));
o.println("# Base64.getUrlEncoder() / Base64.getUrlDecoder() のデモ");
o.println("エンコード結果 : " + encoded);
o.println("デコード結果 : " + decoded);
o.println();
}
static void _MimeEncoderのデモ() {
final String text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
String encoded = Base64.getMimeEncoder()
.encodeToString(text.getBytes());
String decoded = new String(Base64.getMimeDecoder()
.decode(encoded));
o.println("# Base64.getMimeEncoder() / Base64.getMimeDecoder() のデモ");
o.println("エンコード結果 : " + encoded);
o.println("デコード結果 : " + decoded);
o.println();
}
}
@komiya-atsushi
Copy link
Author

出力結果はこちら。

# Base64.getEncoder() / Base64.getDecoder() のデモ
エンコード結果 : 44GE44KN44Gv44Gr44G744G444Go
デコード結果 : いろはにほへと

# Base64.getUrlEncoder() / Base64.getUrlDecoder() のデモ
エンコード結果 : Pz8_Pz8-
デコード結果 : ?????>

# Base64.getMimeEncoder() / Base64.getMimeDecoder() のデモ
エンコード結果 : TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQs
IHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFn
bmEgYWxpcXVhLg==
デコード結果 : Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

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