2015-09-28 32 views

risposta

0

Sarà necessario inviare la lunghezza della stringa o chiudere la connessione in modo da sapere dove si trova l'ultimo byte.

La classe più probabile per aiutarti è il DeflatorInputStream che puoi utilizzare una volta letti i byte. Questo è un wrapper nudo per la classe zlib. Non l'ho provato funziona con Python ma è la soluzione migliore.

È possibile provare altre compressioni come Snappy o LZ4 con supporto multipiattaforma.

0

Suppongo che tu conosca già la parte di rete su Java. È possibile utilizzare la classe Inflater per ottenere la stringa come in javadocs

// Decompress the bytes 
Inflater decompresser = new Inflater(); 
decompresser.setInput(output, 0, compressedDataLength); 
byte[] result = new byte[100]; 
int resultLength = decompresser.inflate(result); 
decompresser.end(); 
//Then create string in java i assumed you are using python 2 and string is ASCII 
String str = new String(result,"US-ASCII")