Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Чтение и запись в файл byte и short


Автор: accessd 11.4.2007, 00:46
В файл записываются числа byte и short.
Код

DataOutputStream dataOut = new DataOutputStream(new FileOutputStream(filename));
double red_u[][];
...
for(int i = 0; i < m; i++)              
      for(int j = 0; j < num_sing_val; j++){
       if (((int)(red_u[i][j]*x) > 127) | ((int)(red_u[i][j]*x) < -127))
           dataOut.writeShort((int)(red_u[i][j]*(double)0x1000));
       else
           dataOut.writeByte((int)(red_u[i][j]*(double)0x100));
      }

Как мне потом при чтении узнать где byte, а где short? И соответственно считать в массив.

Автор: LSD 11.4.2007, 10:36
Цитата(accessd @  11.4.2007,  00:46 Найти цитируемый пост)
Как мне потом при чтении узнать где byte, а где short?

Ты сам должен об этом позаботится, или записывать некий индикатор в начало файла, или еще как.

Автор: accessd 11.4.2007, 14:07
Цитата

Ты сам должен об этом позаботится, или записывать некий индикатор в начало файла, или еще как.


В этом то и проблема..
Понятно, что нужен некоторый индикатор, byte это или short, но какой?
Для чтения я буду использовать RandomAccessFile.

Автор: LSD 11.4.2007, 14:37
Да какой хочешь. Например пусть всегда первым байтом идет тип массива, 0 - int, 1 - short. Далее 4 байта - длинна этого массива, затем данные.

Или используй сериализацию, там эта проблема уже решена. Но весь файл надо писать и читать за один проход.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)