Преобразование строки в массив байтов — это частая задача в программировании на Java, особенно при работе с сетевыми операциями, файлами и сжатием данных. Например, вам может понадобиться преобразовать текстовую строку в массив байтов, чтобы сохранить ее в файле или отправить по сети.
String text = "Привет, мир!";
В Java для преобразования строки в массив байтов можно использовать метод getBytes()
, который встроен в класс String
. Этот метод преобразует все символы строки в последовательность байтов и возвращает эту последовательность в виде массива.
byte[] bytes = text.getBytes();
Однако при выводе массива байтов на экран вы обнаружите, что результат выглядит не так, как ожидалось. Вместо ожидаемых байтов вы увидите что-то вроде «[B@6d06d69c». Это происходит потому, что метод toString()
для массивов в Java возвращает не содержимое массива, а его хеш-код.
System.out.println(bytes.toString()); // выводит что-то вроде "[B@6d06d69c"
Чтобы получить строковое представление массива байтов, вы можете использовать класс Arrays
и его метод toString()
. Этот метод преобразует массив в строковое представление, в котором элементы массива разделены запятыми и пробелами.
System.out.println(Arrays.toString(bytes)); // выводит что-то вроде "[72, 105, 118, 101, 116]"
Также стоит помнить, что метод getBytes()
использует платформенно-зависимую кодировку символов по умолчанию. Это может привести к непредсказуемым результатам, если ваш код будет выполняться на разных платформах с разными кодировками по умолчанию. Чтобы избежать этой проблемы, вы можете явно указать кодировку при вызове getBytes()
, например «UTF-8».
byte[] bytes = text.getBytes("UTF-8");
Таким образом, преобразование строки в массив байтов в Java — это простая задача, которую можно выполнить с помощью встроенных методов класса String
.
Добавить комментарий