Положительный int в байтовое пребставление
От: f95.2  
Дата: 06.05.20 19:20
Оценка:
Добрый вечер.
Как обычно принято джаве сериализовать int в байтовое ascii-представление?
Т.е., например, из 123 получить byte[]{0x31, 0x32, 0x33}?

Integer.toString(123).getBytes() ?
Но тут выделяется целых два вспомогательных буфера.
Есть ли способ быстрее (например, сохранять в уже готовй буфер)? И пользуются ли им, или считается, что это экономия на спичках?
Re: Положительный int в байтовое пребставление
От: C0s Россия  
Дата: 06.05.20 19:41
Оценка: +1
Здравствуйте, f95.2, Вы писали:

F2>Как обычно принято джаве сериализовать int в байтовое ascii-представление?


см. java.nio.ByteBuffer
Re[2]: Положительный int в байтовое пребставление
От: GarryIV  
Дата: 06.05.20 20:17
Оценка:
Здравствуйте, C0s, Вы писали:

F2>>Как обычно принято джаве сериализовать int в байтовое ascii-представление?


C0s>см. java.nio.ByteBuffer


Как он тут поможет?
WBR, Igor Evgrafov
Re[3]: Положительный int в байтовое пребставление
От: vsb Казахстан  
Дата: 06.05.20 20:24
Оценка:
Здравствуйте, GarryIV, Вы писали:

F2>>>Как обычно принято джаве сериализовать int в байтовое ascii-представление?


C0s>>см. java.nio.ByteBuffer


GIV>Как он тут поможет?


ByteBuffer.putInt​(int value)
Re: Положительный int в байтовое пребставление
От: GarryIV  
Дата: 06.05.20 20:25
Оценка:
Здравствуйте, f95.2, Вы писали:

F2>Как обычно принято джаве сериализовать int в байтовое ascii-представление?

F2>Т.е., например, из 123 получить byte[]{0x31, 0x32, 0x33}?

F2>Integer.toString(123).getBytes() ?

F2>Но тут выделяется целых два вспомогательных буфера.
Нормальный для обычного кода вариант. Но кодировку лучше указать.

F2>Есть ли способ быстрее (например, сохранять в уже готовй буфер)? И пользуются ли им, или считается, что это экономия на спичках?

Без промежуточного преобразования в String только руками делить. В каком-нибудь сериализаторе реализовано наверняка.
WBR, Igor Evgrafov
Re[4]: Положительный int в байтовое пребставление
От: GarryIV  
Дата: 06.05.20 20:26
Оценка:
Здравствуйте, vsb, Вы писали:

F2>>>>Как обычно принято джаве сериализовать int в байтовое ascii-представление?


C0s>>>см. java.nio.ByteBuffer


GIV>>Как он тут поможет?


vsb>ByteBuffer.putInt​(int value)


Напомню, ТС хочет чтоб получилось byte[]{0x31, 0x32, 0x33}
WBR, Igor Evgrafov
Re[5]: Положительный int в байтовое пребставление
От: vsb Казахстан  
Дата: 06.05.20 20:29
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Напомню, ТС хочет чтоб получилось byte[]{0x31, 0x32, 0x33}


А, сорри, необычное желание. Я бы посоветовал тогда просто сделать Writer над этими байтами в нужной кодировке и писать туда текст, раз по сути там текст, а не двоичные данные.
Отредактировано 06.05.2020 20:30 vsb . Предыдущая версия .
Re: Положительный int в байтовое пребставление
От: Буравчик Россия  
Дата: 06.05.20 20:36
Оценка:
Здравствуйте, f95.2, Вы писали:

F2>Как обычно принято джаве сериализовать int в байтовое ascii-представление?

F2>Т.е., например, из 123 получить byte[]{0x31, 0x32, 0x33}?

Предположу, что base64.encoder + wrap outputstream

UPD: или надо обязательно в десятичное представление?
Best regards, Буравчик
Отредактировано 06.05.2020 20:50 Буравчик . Предыдущая версия .
Re[3]: Положительный int в байтовое пребставление
От: C0s Россия  
Дата: 06.05.20 22:40
Оценка:
Здравствуйте, GarryIV, Вы писали:

F2>>>Как обычно принято джаве сериализовать int в байтовое ascii-представление?


C0s>>см. java.nio.ByteBuffer


GIV>Как он тут поможет?


я смотрел не на фактический пример в вопросе, а на соседний вопрос ТС в разделе про сериализацию.
Re: Положительный int в байтовое пребставление
От: scf  
Дата: 07.05.20 10:05
Оценка:
Здравствуйте, f95.2, Вы писали:

F2>Добрый вечер.

F2>Как обычно принято джаве сериализовать int в байтовое ascii-представление?
F2>Т.е., например, из 123 получить byte[]{0x31, 0x32, 0x33}?

F2>Integer.toString(123).getBytes() ?

F2>Но тут выделяется целых два вспомогательных буфера.
F2>Есть ли способ быстрее (например, сохранять в уже готовй буфер)? И пользуются ли им, или считается, что это экономия на спичках?

Экономия на спичках. Есть StringBuilder.append(int), если нужно быстрее, то либо не используют ascii представление, либо пишут сериализацию руками, это уровень школьной программы.

edit: О, это тот же автор, что и в соседнем топике. Тогда рекомендую DataOutputStrream, удобный примитив для сериализации всего.
Отредактировано 07.05.2020 10:11 scf . Предыдущая версия .
Re: Положительный int в байтовое пребставление
От: StanislavK Великобритания  
Дата: 11.05.20 09:39
Оценка:
Здравствуйте, f95.2, Вы писали:

F2>Как обычно принято джаве сериализовать int в байтовое ascii-представление?

F2>Т.е., например, из 123 получить byte[]{0x31, 0x32, 0x33}?
F2>Integer.toString(123).getBytes() ?
Все правильно, только лучше так:

Integer.toString(123).getBytes(StandardCharsets.US_ASCII)


F2>Но тут выделяется целых два вспомогательных буфера.

F2>Есть ли способ быстрее (например, сохранять в уже готовй буфер)?
Встроенного — нет, но можно быстро сделать самому — большая часть кода есть в jdk: java.lang.Integer#stringSize & java.lang.Integer#getChars

F2>И пользуются ли им, или считается, что это экономия на спичках?

И да и нет. Те, кто процессят меньше 100К событий в секунду на поток и не ворочают терабайтами, скажут, что спички. В общем, что спички, а что нет — тебе надо самому решать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.