Я читаю двоичный файл следующим образом:
InputStream in = new FileInputStream( file );
byte[] buffer = new byte[1024];
while( ( in.read(buffer ) > -1 ) {
int a = // ???
}
Что я хочу сделать, чтобы прочитать до 4 байтов и создать значение int из них, но я не знаю, как это сделать.
Мне кажется, что я должен брать по 4 байта за один раз и выполнять одну операцию "байт" (например, → < < → и FF и тому подобное), чтобы создать новый int
Какая идиома для этого?
ИЗМЕНИТЬ
В этом случае это будет немного сложнее (объяснить)
То, что я пытаюсь сделать, это прочитать файл (может быть, ascii, двоичный, это неважно) и извлечь целые числа, которые он может иметь.
Например, предположим, что двоичный контент (в базе 2):
00000000 00000000 00000000 00000001
00000000 00000000 00000000 00000010
Целочисленное представление должно быть 1
, 2
вправо?: -/1 для первых 32 бит и 2 для остальных 32 бит.
11111111 11111111 11111111 11111111
Будет -1
и
01111111 11111111 11111111 11111111
Будет Integer.MAX_VALUE ( 2147483647 )