Javaでbyte[]⇔Byte[]変換する方法

Javaでbyte[]⇔Byte[]変換する方法

byte配列⇔Byte配列に変換する方法です。

ライブラリを使って変換(byte[]⇒Byte[])

org.apache.commons.lang3.ArrayUtilsクラスのtoObjectメソッドを使用してbyte[]配列からByte[]配列に変換します。

package jp.co.confrage;

import java.io.UnsupportedEncodingException;
import org.apache.commons.lang3.ArrayUtils;

public class Sample {
  public static void main(String... args) throws UnsupportedEncodingException {
    byte[] bytes = "あああ".getBytes("UTF-8");
    Byte[] result = ArrayUtils.toObject(bytes); // byteからByteに変換する
    System.out.println(result);
  }
}

ライブラリを使って変換(Byte[]⇒byte[])

org.apache.commons.lang3.ArrayUtilsクラスのtoPrimitiveメソッドを使用してByte[]配列からbyte[]配列に変換します。

package jp.co.confrage;

import java.io.UnsupportedEncodingException;
import org.apache.commons.lang3.ArrayUtils;

public class Bytes {
  public static void main(String... args) throws UnsupportedEncodingException {
    byte[] bytes = "あああ".getBytes("UTF-8");
    Byte[] result1 = ArrayUtils.toObject(bytes); // byteからByteに変換する
    byte[] result2 = ArrayUtils.toPrimitive(result1); // Byteからbyteに変換する
    System.out.println(result2);
  }
}

ライブラリを使わずに変換(byte[]⇒Byte[])

for文を使用してbyte[]配列からByte[]配列に変換します。

package jp.co.confrage;

import java.io.UnsupportedEncodingException;
import org.apache.commons.lang3.ArrayUtils;

public class Sample {
  public static void main(String... args) throws UnsupportedEncodingException {
    byte[] bytes = "あああ".getBytes("UTF-8");
    Byte[] result = new Byte[bytes.length];
    for (int i = 0; i < bytes.length; i++) {
      result[i] = Byte.valueOf(bytes[i]);
    }
    System.out.println(result);
  }
}

IntStreamを使用してbyte[]配列からByte[]配列に変換します。

package jp.co.confrage;

import java.io.UnsupportedEncodingException;
import java.util.stream.IntStream;

public class Sample {
  public static void main(String... args) throws UnsupportedEncodingException {
  byte[] bytes = "あああ".getBytes("UTF-8");
  Byte[] result = IntStream.range(0, bytes.length)
    .mapToObj(i -> bytes[i])
    .toArray(Byte[]::new); // 変換
  }
}

ライブラリを使わずに変換(Byte[]⇒byte[])

for文を使用してByte[]配列からbyte[]配列に変換します。

package jp.co.mainmain;

import java.io.UnsupportedEncodingException;
import org.apache.commons.lang3.ArrayUtils;

public class Bytes {
  public static void main(String... args) throws UnsupportedEncodingException {
    byte[] bytes = "あああ".getBytes("UTF-8");
    Byte[] result1 = ArrayUtils.toObject(bytes); // byteからByteに変換する

    byte[] result2 = new byte[result1.length];
    for (int i = 0; i < result1.length; i++) { // Byteからbyteに変換する
      result2[i] = result1[i].byteValue();
    }
    System.out.println(result2);
  }
}

ライブラリダウンロード

Lang – Download Apache Commons Lang

コメント

タイトルとURLをコピーしました