Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
pingved
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 9
1

Как подружить ByteBuffer & ByteOrder?

22.04.2010, 14:24. Просмотров 1181. Ответов 1
Метки нет (Все метки)

Читаю файл формата PE в ByteBuffer.
Разбираю его. Вижу что при чтении (например):
Java
1
e_lfanew = filebuf.getShort() & 0xFFFF;
байты читаются перевернутые. Так происходит во всех переменных насколько я понял.

Иду в область где буфер создавался:
Java
1
2
ReadableByteChannel channel = new FileInputStream(fpe).getChannel();
filebuf = ByteBuffer.allocateDirect((int)filesize);
Делаю:
Java
1
filebuf.order(ByteOrder.LITTLE_ENDIAN);
Но по какой-то непонятной мне причине все данные читаются точно в такой же форме как и до этого.
Что я не заметил, где я неправ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2010, 14:24
Ответы с готовыми решениями:

ByteBuffer wrap vs put
В чем отличие методов put и wrap ? Я почитал оракловскую документацию, но плохо...

Чтение символов из ByteBuffer
У меня, я так подозреваю, глупый вопрос, но он не дает мне покоя, поэтому задам...

Отправка String в ByteBuffer
Доброго времени суток, уважаемые. Столкнулся с некой проблемой. Не...

Получить часть буффера из ByteBuffer.
Привет! Вот такая проблема, нужно из ByteBuffer выделить часть (from, to)....

Понимание && Внутренние классы && слушатели
Вечер добрый, форумчане. Есть кусок кода из Хорстмана: private void...

1
Learx
1045 / 852 / 194
Регистрация: 31.03.2010
Сообщений: 2,487
20.10.2011, 11:03 2
Я сделал так для чтения массива short из бинарного файла:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        AcbkGainTable170 = new short[170*20];
        try
        {
            BufferedInputStream bis= new BufferedInputStream(new FileInputStream("file.dat"));
            ByteBuffer bb= ByteBuffer.wrap(new byte[(int)new File("file.dat").length()]);
            bb.order(ByteOrder.LITTLE_ENDIAN);
            bis.read(bb.array());
            for(int i=0; i<AcbkGainTable170.length; i++)
            {
                AcbkGainTable170[i]=bb.getShort();
            }
        }
        catch(IOException ie){}
        catch(Exception e){}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2011, 11:03

Как подружить Java и PERCo?
Здравствуйте. На работе поставили задачу написать систему, которая будет...

Разница между & и &&
Здравствуйте, объясните пожалуйста: какая разница между &amp;&amp; и &amp;.

Не может отправить ответ DataOutputStream: ServerChat && ClientChat
Всем привет есть сервер с множеством подключений и клиентов, которые должны...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru