powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Парсинг бинарных файлов
6 сообщений из 6, страница 1 из 1
Парсинг бинарных файлов
    #39235123
BlackEric
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как быстро парсить бинарные файлы?
Я получаю данные от оборудования. В файле идет заголовок и после него набор данных в виде структур.
На С я бы читал файл в буфер, а потом уже пробегая по буферу считывал данные в соответствующие структуры с побайтным выравниванием.

black-eric.lj.ru
...
Рейтинг: 0 / 0
Парсинг бинарных файлов
    #39235138
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем проблема?
RandomAccessFile например
...
Рейтинг: 0 / 0
Парсинг бинарных файлов
    #39235141
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за прикол в свои посты ссылки не по теме пихать?
...
Рейтинг: 0 / 0
Парсинг бинарных файлов
    #39235161
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.
В "новой" java сделали класс https://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html

Мне кажется, с помощью него должно быть не сложно. Только в структуре посчитать смещение полей от начала.

2.
Или https://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html

с методами readByte, readInt, readFloat etc...
...
Рейтинг: 0 / 0
Парсинг бинарных файлов
    #39235333
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackEricКак быстро парсить бинарные файлы?
Я получаю данные от оборудования. В файле идет заголовок и после него набор данных в виде структур.
На С я бы читал файл в буфер, а потом уже пробегая по буферу считывал данные в соответствующие структуры с побайтным выравниванием.
Да здесь твоя правда. JVM-спецификация не определяет структуру данных никак. Классы имеют
определение весьма размытое и JDK в части публичного API не предоставляет никаких
прямых доступов к этому пространству на запись.

Поэтому самое простое решение это создать свои классы и сделать implements Externalizable
а там уже через поток байтов разбирать InputStream и сеттить поля.

Здесь может пригодится nio.ByteBuffer чтобы переворачивать short, int в обратый порядок если
исходный файл был таковым.

Код: java
1.
2.
ByteBuffer bb = ByteBuffer.wrap(byteArray);
bb.order( ByteOrder.LITTLE_ENDIAN);



+была библиотечка от Apache Commons где были функции для правильного переворачивания Endians.
...
Рейтинг: 0 / 0
Парсинг бинарных файлов
    #39235381
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reading binary file in spark scala

Код: java
1.
2.
3.
4.
5.
import java.nio.ByteBuffer

val result = YourRDD.map(x=>(ByteBuffer.wrap(x.take(4)).getInt,
             ByteBuffer.wrap(x.drop(4).take(2)).getShort,
             ByteBuffer.wrap(x.drop(6)).getLong))



на java аналогично :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Парсинг бинарных файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]