Рубрики
Без рубрики

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

Строка Java в массив байтов, массив байтов Java в строку, конструктор массива байтов строки, пример набора символов строки getBytes, стандартные наборы символов UTF_8, код UTF_16.

Автор оригинала: Pankaj Kumar.

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

Массив из строки в байт

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

Вот простая программа, показывающая, как преобразовать строку в массив байтов на 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();
		// print the byte[] elements
		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 в массиве байтов. Вот почему выходные данные одинаковы как для преобразования массива байтов в строку.

Строка также имеет конструктор, в котором мы можем предоставить массив байтов и кодировку в качестве аргумента. Таким образом, приведенный ниже код также может быть использован для преобразования массива байтов в строку в 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.

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