Преобразовать Byte[] в String и наоборот

Научитесь преобразовывать массив byte[] в строку и преобразовывать строку в массив byte[] в Java с примерами. Преобразование между массивом byte и строкой может использоваться во многих случаях, включая операции ввода-вывода, генерацию безопасных хэшей и т. д.

Пока это не станет абсолютно необходимым, НЕ выполняйте преобразование между строкой и массивом байтов. Они оба представляют разные данные; и служат определенным целям, то есть строки предназначены для текста, byte[] — для двоичных данных.

1. Из byte[] в String

1.1 Использование конструктора строк

Чтобы преобразовать массив байтов в строку, можно использовать конструктор класса String с byte[] в качестве аргумента конструктора.

byte[] bytes = "hello world".getBytes();String s = new String(bytes);

1.2.Использование Base64

Начиная с Java 8, нам доступен класс Base64. Как вы, возможно, знаете, Base64 — это способ кодирования двоичных данных, в то время как UTF-8 и UTF-16 — это способы кодирования текстовых данных Unicode. Так что если вам нужно кодировать произвольные двоичные данные как текст, Base64 — это то, что вам нужно.

byte[] bytes = "hello world".getBytes();String s = Base64.getEncoder().encodeToString(bytes);

2. Из строки в байт[]

2.1 Использование String.getBytes()

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

String string = "howtodoinjava.com";byte[] bytes = string.getBytes();

2.2 Использование Base64

Метод Base64.getDecoder().decode() преобразует строку в массив байтов.

String string = "howtodoinjava.com";byte[] bytes = Base64.getDecoder().decode(string);

3. Резюме

При преобразовании массива byte[] в строку и обратно в Java следует сосредоточиться на типе входных данных.

  • Используйте класс String при вводе данных в виде строки или текстового содержимого.
  • Используйте класс Base64 при вводе данных в массив байтов.

Пишите мне свои вопросы в комментариях.

Прокрутить вверх