У меня есть двоичный файл, который содержит большие данные endian. Я использую этот код для чтения вJava ByteBuffer для Zipfile
FileChannel fileInputChannel = new FileInputStream(fileInput).getChannel();
ByteBuffer bb = ByteBuffer.allocateDirect((int)fileInputChannel.size());
while (bb.remaining() > 0)
fileInputChannel.read(bb);
fileInputChannel.close();
bb.flip();
Я должен сделать что-то идентичное для zip-файлов. Другими словами, распакуйте файл из zip-файла и закажите его. Я понимаю, что могу прочитать его через ZipInputStream, но потом я должен предоставить кодировку для «endianness». С ByteBuffer вы можете использовать ByteOrder.
Есть ли альтернатива NIO для почтовых файлов?
Данные в zip-файле сжаты, поэтому изменение порядка в байтах бессмысленно. Когда вы пишете в своем вопросе, сначала распакуйте файлы, и поменяйте их на байты, чтобы изменить их имена. –
Вам это не нужно. Используйте 'ZipInputStream', предоставленный в JDK. Вы начинаете с неправильного места, и вам, конечно же, не нужно разбираться с проблемами с endian в ZIP-файле. – EJP
@ EJP- Endian проблемы НЕ находятся в ZIP-файле. Они находятся в несжатом файле. Извините, если текст не передает вопрос достаточно точно. – gansub