Java バイト配列の作成と復号のサンプル(getBytes)

Javaのバイト配列の作成と復号のサンプルです。

確認環境
・Java 8

目次

作成 バイト配列を作成する(try~catch不要)
  バイト配列を作成する(try~catch必要)
復号 バイト配列を復号化する

バイト配列を作成する(try~catch不要)

public byte[] getBytes(Charset charset)
  • getBytesメソッドは、文字列をバイト配列にします。
  • 引数は、Charset型で文字コードを指定するため、try~catchは不要です。
  • バイト配列とは、データ型がバイト(byte)型で値が-128~127までの配列です。

コード

try~catch不要でバイト配列を作成するサンプルです。

package test1;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

public class Test1 {
	public static void main(String[] args) {
		
		Charset charset = StandardCharsets.UTF_8;
		String test1 = "あA1";

		byte [] a = test1.getBytes(charset);

		for (byte i: a){
			System.out.println(i);
			//-29 -127 -126 65 49
		}
	}
}

11行目は、getBytesメソッドで9行目の文字列をバイト配列にしています。
getBytesメソッドの引数は、StandardCharsetsクラスのUTF_8を指定しています。
try~catchを記述する必要はありません。

以下はJava8 API仕様のgetBytesメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#getBytes-java.nio.charset.Charset-

バイト配列を作成する(try~catch必要)

public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
  • getBytesメソッドは、文字列をバイト配列にします。
  • 引数は、String型の文字コードを指定します。
  • 引数に想定外の値が指定される可能性があるため、try~catchが必要です。
  • バイト配列とは、データ型がバイト(byte)型で値が-128~127までの配列です。

コード

try~catch必要でバイト配列を作成するサンプルです。

package test1;
import java.io.UnsupportedEncodingException;

public class Test1 {
	public static void main(String[] args) {

		String test1 = "あA1";
		
		try {
			byte[] b = test1.getBytes("Shift_JIS");
			
			for (byte i: b){
				System.out.println(i);
				//-126 -96 65 49
			}
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}
}

11行目は、getBytesメソッドで8行目の文字列をバイト配列にしています。
getBytesメソッドの引数は、Stringの文字列です。そのためtry~catchを記述する必要があります。

以下はJava8 API仕様のgetBytesメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#getBytes-java.lang.String-

バイト配列を復号化する

public  String (byte[ ] bytes, Charset charset)
  • Stringクラスのコンストラクタでバイト配列を復号化し新しいStringを生成します。
  • 1つめの引数は、バイト配列を指定します。
  • 2つめの引数は、復号化で使用する文字コードです。
  • バイト配列とは、データ型がバイト(byte)型で値が-128~127までの配列です。

コード

バイト配列を復号化するサンプルです。

package test1;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

public class Test1 {
	public static void main(String[] args) {
		
		Charset charset = StandardCharsets.UTF_8;
		String test1 = "あA1";
		byte [] a = test1.getBytes(charset);
		for (byte i: a){
			System.out.println(i);
			//-29 -127 -126 65 49
		}

		String b = new String(a,charset);
		System.out.println(b); //あA1
	}
}

8~10行目は、バイト配列を作成しています。
16行目はStringクラスのコンストラクタでバイト配列を復号化し新しいStringを生成しています。

以下はJava8 API仕様のStringクラスのコンストラクタのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#String-byte:A-java.nio.charset.Charset-

関連の記事

Java Base64のエンコードとデコードのサンプル

△上に戻る