массив байтов в строку в Android - PullRequest
0 голосов
/ 26 февраля 2012

Мне нужен способ преобразования байта [] в строку без создания нового объекта String.

Чего я не хочу:

String s= new String(byte[], int offset, int byteCount);

Есть ли другой способ достичь того же самого, не создавая новый объект String?

Я смотрю на класс Base64. Это работает?

Ответы [ 2 ]

2 голосов
/ 26 февраля 2012

Это было бы возможно только в том случае, если где-то у вас был кэш строк, сгенерированных из каждого ввода, который вы собираетесь получить.

Строки являются неизменяемыми, поэтому вы не можете поместить новые данные в существующую строку - поэтому, если вы не можете найти существующую строку, которая уже имеет нужные данные (кеш Я упоминал ранее) вам придется создать новую строку.

(Я бы также настоятельно рекомендовал указать кодировку символов, которую вы хотите использовать, а не полагаться на кодировку по умолчанию системы.)

Конечно, если это не действительно кодированный текст для начала (например, если данные byte[] взяты из изображения), тогда Base64 будет более подходящим в любом случае - но это ортогонально от того, нужна ли вам новая строка .

0 голосов
/ 26 февраля 2012

просто поместите файл Base64.java в ваш пакет проекта.& use String str = Base64.encodeBytes (байтовый массив);который даст вам byte [] для преобразования строк.Вы можете скачать base64.java из http://iharder.sourceforge.net/current/java/base64/

...