вторник, 13 сентября 2011 г.
ByteBuffer мать его!
Есть в java замечательная особенность. ByteBuffer она называется. Например сокеты могут читать/писать только в него. Самое замечательное что логика работы данного буфера весьма не однозначна. Мне он показалсчя больше всего похожим на ленту. Записал на него а чтоб прочитать изволь его перемотать на начало. Ну и вдогонку куча операций с позиционированием разнообразных указателей чтения/записи. Например если попросить считать из сокета немного данных(скажем байт 100) в ByteBuffer размером 1024 байта, а потом преобразуем все это в строку т.к. ожидаем что пришла нам строка. То получим строку длиной 1024. В начале будет то что нам надо а потом мусор какой-то. Из 5и обнаруженных способов преобразовать ByteBuffer в строку корректно отработал только один. С предварительным явным выделением byte[] нужного размера. Мне кажется.. нет я даже уверен что для высокоуровневого языка это явный перебор. В общем несмотря на то что пишу на жабе уже почти 2а года она не перестает меня удивлять. В плохом смысле слова.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий