[解決済み] Java Stringをbyte[]に変換する方法は?
2022-03-17 19:57:55
質問
Javaを変換する方法はありますか?
String
を
byte[]
(
ない
箱型の
Byte[]
)?
これを試すにあたって
System.out.println(response.split("\r\n\r\n")[1]);
System.out.println("******");
System.out.println(response.split("\r\n\r\n")[1].getBytes().toString());
と別々の出力が出るのですが 1番目の出力はgzip文字列のため表示できません。
<A Gzip String>
******
[B@38ee9f13
2つ目はアドレスです。何か間違いがあるのでしょうか?結果を
byte[]
をgzip解凍機に食わせるために、以下のようにします。
String decompressGZIP(byte[] gzip) throws IOException {
java.util.zip.Inflater inf = new java.util.zip.Inflater();
java.io.ByteArrayInputStream bytein = new java.io.ByteArrayInputStream(gzip);
java.util.zip.GZIPInputStream gzin = new java.util.zip.GZIPInputStream(bytein);
java.io.ByteArrayOutputStream byteout = new java.io.ByteArrayOutputStream();
int res = 0;
byte buf[] = new byte[1024];
while (res >= 0) {
res = gzin.read(buf, 0, buf.length);
if (res > 0) {
byteout.write(buf, 0, res);
}
}
byte uncompressed[] = byteout.toByteArray();
return (uncompressed.toString());
}
解決方法は?
メソッドの対象
decompressGZIP()
が必要なのは
byte[]
.
つまり、質問されたことに対する基本的、技術的な答えです。
byte[] b = string.getBytes();
byte[] b = string.getBytes(Charset.forName("UTF-8"));
byte[] b = string.getBytes(StandardCharsets.UTF_8); // Java 7+ only
しかし、あなたが格闘しているように見える問題は、これがあまりうまく表示されないということです。呼び出し
toString()
は、単にデフォルトの
Object.toString()
は、クラス名+メモリアドレスとなります。結果
[B@38ee9f13
は、その
[B
というのは
byte[]
と
38ee9f13
はメモリアドレスで、区切りは
@
.
表示目的では、使用することができます。
Arrays.toString(bytes);
しかし、これではカンマで区切られた整数の列として表示されるだけで、あなたが望むものであるかどうかはわかりません。
読みやすい
String
からのバック
byte[]
を使用します。
String string = new String(byte[] bytes, Charset charset);
の理由は
Charset
バージョンが好まれるのは、すべての
String
オブジェクトは、内部的にはUTF-16として格納されます。に変換する場合
byte[]
の指定されたグリフに対して、異なるバイト数の内訳を取得することになります。
String
選択された文字セットによって異なります。
関連
-
this()の呼び出しはコンストラクタ本体の最初の文でなければならない 例外解決と原因分析
-
Exception: java.util.NoSuchElementException: 行が見つかりません
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
最新
-
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で転送されます。
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
Java Exceptionが発生しました エラー解決
-
[解決済み] Javaで "UTF-8 "文字列リテラルを取得する場所はどこですか?
-
final, finally, finalizeの違いについて話してください。
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
org.glassfish.jersey.servlet.ServletContainer
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
JSPで「リストが型解決できない!」の解決方法