Я мог бы использовать некоторые советы или подсказки для приличного интерфейса для чтения файла с особыми характеристиками.
У рассматриваемых файлов есть заголовок (~ 120 байт), тело (1 байт - 3 ГБ) и нижний колонтитул (4 байта).
Верхний колонтитул содержит информацию о теле, а нижний колонтитул представляет собой простое значение CRC32 для тела.
Я использую Java, поэтому моя идея состояла в том, чтобы расширить класс «InputStream» и добавить конструктор, такой как «public MyInStream (InputStream in)», где я немедленно читаю заголовок, а непосредственное переопределенное read () - тело.
Проблема в том, что я не могу дать пользователю класса значение CRC32, пока не будет прочитано все тело.
Поскольку размер файла может составлять 3 ГБ, рекомендуется поместить его в память.
Чтение всего этого во временный файл станет ударом по производительности, если будет много маленьких файлов.
Я не знаю, насколько велик файл, потому что InputStream не обязательно должен быть файлом, это может быть сокет.
Глядя на это снова, возможно, расширение InputStream - плохая идея.
Спасибо, что прочитали запутанные мысли уставшего программиста. :)