2013-06-21 2 views
4

Я не уверен, правильно ли получил концепцию, но я знаю, что мы можем проверить целостность файлов в zip, получив значения CRC для каждой записи. Однако, мой вопрос заключается в том, если я получу zip-файл, будет ли CRC для него, и если да, то как я могу это определить?Можно ли определить CRC zip-файла?

+1

Примечание: Вы можете вычислить CRC любого файла (или даже лучше: любую часть данных). –

+0

Хорошо. Поэтому я написал два разных метода, которые вычисляют CRC для обычных файлов и zip-файлов. У меня создалось впечатление, что оба они должны быть одинаковыми, но они разные. Я не могу расшифровать, почему они разные – user1707141

ответ

3

Вы можете использовать метод checksumCRC32 класса FileUtils в упаковке org.apache.commons.io.

6

Вы можете использовать java.util.zip.CRC32 для вычисления контрольной суммы CRC-32 для любого потока данных.

BufferedInputStream bis = new BufferedInputStream(
          new FileInputStream(new File("/path/to/file.zip"))); 
int read = 0; 
CRC32 checksum = new CRC32(); 
byte[] buffer = new byte[1024]; 
while ((read = bis.read(buffer)) != -1) { 
    checksum.update(buffer, 0, read); 
} 
bis.close(); 
System.out.println ("CRC32 of your zip is: " + checksum.getValue()); 
+0

Спасибо, что работал как драгоценный камень. – user1707141

Смежные вопросы