Javaでバイトアレイを文字列に変換する
この投稿では、Javaでバイトアレイを文字列に変換する方法について説明します。
文字列はテキストデータをJavaで保存することを知っています。 byte[]
バイナリデータを格納するため、それらの間の変換は避けてください。それにもかかわらず、私たちは選択の余地がない状況に自分自身を見つけるかもしれません。この投稿では、文字エンコードを指定する場合と指定しない場合で、Javaでバイトアレイを文字列に変換する方法について説明します。
1.文字エンコードなし
変換できます byte
文字エンコードを指定せずに、ASCII文字セットの文字列にアレイします。アイデアは合格することです byte[]
文字列コンストラクタに。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.io.IOException; import java.util.Arrays; //Javaでバイトアレイを文字列に変換します class Main { public static void main(String[] args) throws IOException { byte[] bytes = "Techie Delight".getBytes(); // System.out.println(Arrays.toString(bytes)); //指定せずにバイトアレイから文字列を作成します // 文字コード String string = new String(bytes); System.out.println(string); } } |
出力:
Techie Delight
2.文字エンコードあり
私たちはそれを知っています byte
最大256の異なる値を持つことができる8ビットを保持します。これは、最初の7ビットのみが使用されるASCII文字セットで正常に機能します。 256を超える値を持つ文字セットの場合、文字をバイトのシーケンスにエンコードする方法を指示するエンコードを明示的に指定する必要があります。
次のプログラムでは、 StandardCharsets.UTF_8
エンコーディングを指定します。 Java 7より前では、 Charset.forName("UTF-8")
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.io.IOException; import java.nio.charset.StandardCharsets; //Javaでバイトアレイを文字列に変換します class Main { public static void main(String[] args) throws IOException { byte[] bytes = "Techie Delight".getBytes(StandardCharsets.UTF_8); //「UTF-8」エンコーディングでバイトアレイから文字列を作成します String string = new String(bytes, StandardCharsets.UTF_8); System.out.println(string); } } |
出力:
Techie Delight
これで、バイトアレイをJava文字列に変換できます。