2016-01-12 4 views
1

Я вижу что-то необычное в моих почтовых файлах.
У меня есть два файла .txt, и оба они затем заархивированы через java.util.zip(ZipOutputStream, ZipEntry ...) в моем приложении, а затем возвращаются в ответ в виде загружаемых zip-файлов через браузер.
В одном файле есть данные, которые являются блоками базы данных, а другие - StringBuffer. Мой txt-файл blob имеет размер 10 МБ, а мой StringBuffer txt-файл - 15 МБ, но когда они застряли, zip-файл blob txt имеет размер больше, чем txt-файл StringBuffer, хотя он содержит меньший txt-файл.
Любая причина, почему это может произойти?Zip-файлы размер аномалии

ответ

0
  • в StringBuffer и (как в Java 5) классов StringBuilder магазин только буфер для символьных данных плюс текущая длина (без дополнительных офсетных и хэш-кодов полей строки), но буфер может быть больше фактического количества символов, помещенных в него;
  • Java char занимает два байта, даже если вы используете их для хранения скучных старых значений ASCII, которые будут вписываться в один байт;
0

Вашего BLOB - двоичного большого объекта - вероятно, содержит данные, которые не текст, а также сжимаемые в виде текста. Например, он может содержать изображение.

Если вы еще не знаете, что содержит blob, вы можете использовать программу hexdump, чтобы посмотреть на нее.

+0

Спасибо, но blob не содержит никаких изображений или каких-либо данных, отличных от txt. –

+0

Облицовка аналогичной проблемы с 2-мя блоками, которые имеют небольшую разницу в размере, говорят 8 мб, но zip-файлы этих двух имеют разницу выше 20 мб. Обратите внимание, что оба этих файла представляют собой текстовые файлы, разделенные текстом. –

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