2012-03-22 1 views
0

Я печать кусок от InputStream с помощьюСжать и распаковывать кусок байтов в InputStream

int skip = in.skip(1024); //skip first 1024b 

int end = in.available(); // remaining size in b 

for (int i = skip; i < end; i++) { 

    //prints chunk of data from in-stream from skip till end 

    System.out.println(in.read()); 

} 

вместо печати от перехода к концу, я хочу, чтобы сжать байты между пропустить до конца (in.read ()) может кто-то помочь мне первый компресс, а затем распаковывать же


я попробовал этот

FileOutputStream fos = new FileOutputStream(ChunkZipName); 
GZIPOutputStream chunkZipper = new GZIPOutputStream (fos); 
for (int i = skip; i < end; i++) { 
chunkZipper.write(in.read()); } 

, но он пишет только 10 байт. Остальные байты r пропущены ... это правильное использование GZIPOutputStream ???

+0

Используйте GZipInputStream и GZipOutputStream. –

ответ

3

Просто оберните GZIPOutputStream/GZIPInputStream вокруг вашего реального потока.

out = new GZIPOutputStream (out); 

КСТАТИ: Если вы действительно хотите пропустить ровно 1024 байт вы должны проверить возвращаемое значение skip и повторить с остальными байтами, потому что в некоторых случаях (буферы) метод не пропускает полностью в желаемое положение.

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

  • Нет связанных вопросов^_^