Код: Выделить всё
private byte[] unzip(byte[] data) throws IOException, DataFormatException {
byte[] unzipData = new byte[4096];
try (ByteArrayInputStream in = new ByteArrayInputStream(data);
GZIPInputStream gzipIn = new GZIPInputStream(in);
ByteArrayOutputStream out = new ByteArrayOutputStream()) {
int read = 0;
while( (read = gzipIn.read(unzipData)) != -1) {
out.write(unzipData, 0, read);
}
return out.toByteArray();
}
}
Я уже пытался заменить ByteArrayOutputStream на ByteBuffer, но на момент создания я не знал, сколько байтов мне нужно выделить.
Я уже пытался заменить ByteArrayOutputStream на ByteBuffer, но на момент создания я не знаю, сколько байтов мне нужно выделить.
p>
Кроме того, я пытался использовать Inflater, но наткнулся на проблему, описанную здесь.
Есть еще идеи, что я мог бы сделать, чтобы улучшить исполнение этого код.
UPDATE#1
- Может быть, эта библиотека кому-нибудь поможет.
Также существует открытая ошибка JDK.
- Ошибка JDK закрыта как дубликат. Видите, теперь JDK-CSR ориентирован на JDK 25.
Подробнее здесь: https://stackoverflow.com/questions/325 ... erformance
Мобильная версия