[解決済み] JavaでBase64としてエンコードする
2022-03-15 21:44:03
質問
あるデータをJavaでBase64エンコードする必要があります。どうすればよいですか?Base64エンコーダを提供するクラスの名前は何ですか?
を使おうとしたのですが
sun.misc.BASE64Encoder
クラスがありますが、成功しません。私は、Java 7のコードで次の行を持っています。
wr.write(new sun.misc.BASE64Encoder().encode(buf));
Eclipseを使用しています。Eclipseはこの行をエラーとしてマークします。必要なライブラリーはインポートしました。
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
しかし、やはりどちらもエラーとして表示されます。私が見つけたのは 同様の投稿はこちら .
含めて提案された解決策として、Apache Commonsを使用しました。
import org.apache.commons.*;
からダウンロードしたJARファイルをインポートしてください。 http://commons.apache.org/codec/
しかし、問題はまだ存在します。Eclipseは、前に述べたようなエラーをまだ表示しています。どうしたらいいでしょうか?
解決方法は?
クラスのインポートを変更する必要があります。
import org.apache.commons.codec.binary.Base64;
そして、Base64クラスを使用するようにクラスを変更します。
以下はコード例です。
byte[] encodedBytes = Base64.encodeBase64("Test".getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));
byte[] decodedBytes = Base64.decodeBase64(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));
次に、次のように読みます。 なぜsun.*のパッケージを使ってはいけないのか? .
更新情報 (2016-12-16)
を使用することができるようになりました。
java.util.Base64
をJava 8で使用することができます。まず、通常通りインポートします。
import java.util.Base64;
次に、以下のようにBase64の静的メソッドを使用します。
byte[] encodedBytes = Base64.getEncoder().encode("Test".getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));
byte[] decodedBytes = Base64.getDecoder().decode(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));
文字列を直接エンコードして、その結果をエンコードされた文字列として取得したい場合は、これを使うことができます。
String encodeBytes = Base64.getEncoder().encodeToString((userName + ":" + password).getBytes());
参照 Base64のJavaドキュメント をご覧ください。
関連
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
テストが見つかりませんでした
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] Base64エンコーディングは何に使うのですか?
-
[解決済み】Node.jsでBase64エンコードを行うにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スタイルが読み込まれず、ブラウザコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
スタイルが読み込まれず、ブラウザのコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
-
このラインで複数のマーカーを解決する方法
-
[解決済み] 英数字のランダムな文字列を生成する方法
-
[解決済み] Base64 Javaによる文字列のエンコードとデコード [重複]。