Строка в массив байтов, массив байтов в строку в Java

Сегодня мы узнаем, как преобразовать строку в массив байтов в Java. Мы также узнаем, как преобразовать массив байтов в строку в Java.

Строка в массив байтов

Мы можем использовать метод класса String getBytes() для кодирования строки в последовательность байтов с использованием кодировки по умолчанию платформы. Этот метод перегружен, и мы также можем передать Charset в качестве аргумента. Вот простая программа, показывающая, как преобразовать строку в массив байтов в Java.

package com.journaldev.util;

import java.util.Arrays;

public class StringToByteArray {

	public static void main(String[] args) {
		String str = "PANKAJ";
		byte[] byteArr = str.getBytes();
		// печать элементов byte[]
		System.out.println("String to byte array: " + Arrays.toString(byteArr));
	}
}

На изображении ниже показан вывод при выполнении вышеприведенной программы. Мы также можем получить массив байтов, используя следующий код.

byte[] byteArr = str.getBytes("UTF-8");

Однако, если мы укажем имя кодировки, то нам придется либо перехватить UnsupportedEncodingException исключение, либо выбросить его. Лучшим подходом является использование класса StandardCharsets, введенного в Java 1.7, как показано ниже.

byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);

Это все различные способы преобразования строки в массив байтов в Java.

Преобразование байтового массива в строку Java

Давайте рассмотрим простую программу, показывающую, как преобразовать байтовый массив в строку в Java.

package com.journaldev.util;

public class ByteArrayToString {

	public static void main(String[] args) {
		byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' };
		byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };

		String str = new String(byteArray);
		String str1 = new String(byteArray1);

		System.out.println(str);
		System.out.println(str1);
	}
}

На изображении ниже показан результат, полученный вышеуказанной программой. Вы заметили, что я предоставляю символ при создании байтового массива? Это работает из-за автобоксинга, и символ ‘P’ преобразуется в 80 в байтовом массиве. Вот почему вывод одинаков для преобразования байтового массива в строку. В классе String также есть конструктор, где мы можем указать байтовый массив и набор символов в качестве аргумента. Поэтому нижеприведенный код также можно использовать для преобразования байтового массива в строку в Java.

String str = new String(byteArray, StandardCharsets.UTF_8);

В классе String также есть метод для преобразования подмножества байтового массива в строку.

byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);

Приведенный выше код вполне корректен, и значение ‘str’ будет ‘PAN’. Вот и все, что касается преобразования байтового массива в строку в Java.

Вы можете ознакомиться с большим количеством примеров массивов в нашем репозитории GitHub.

Ссылка: Документация по API getBytes

Source:
https://www.digitalocean.com/community/tutorials/string-byte-array-java