Originariamente inviato da muirto82
Ho in input una stringa qualsiasi, io devo riuscire a comprimere questa stringa utilizzando GZIP e decomprimerla successivamente. Cercando di utilizzare le seguenti catene: GZIPOutputStream->ByteArrayOutputStream e GZIPInputStream->ByteArrayInputStream.
Non sono riuscito nemmeno osservando altri progetti fatti i quali però non utilizzavano ByteArrayStream... Potete fornirmi un buon esempio dal quale posso trarre spunto?
Innanzitutto parli di stringa ... quindi io intendo un String. La conversione da String a byte[] e viceversa è ovviamente possibile ma ... devi tenere presente il charset da usare. Come li vuoi/devi codificare i caratteri?? (es. UTF-8?)
Poi comunque che cosa vuoi ottenere alla fine? Immagino vuoi ottenere un byte[] con i dati compressi.
Esempio (minimale, ometto per brevità dichiarazioni, gestione eccezioni ecc...):
codice:
String s = "Hello World";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
GZIPOutputStream gzos = new GZIPOutputStream(baos);
byte[] notCompressed = s.getBytes("UTF-8");
gzos.write(notCompressed);
gzos.close();
byte[] compressed = baos.toByteArray();
P.S. se la stringa iniziale è molto corta, come nell'esempio sopra, è tranquillamente possibile che il "compresso" sia più lungo del non compresso!!!