La compression et la décompression des flux

J'ai trouvé cet article sur simple serveur proxy mis en œuvre en JAVA:

http://www.java2s.com/Code/Java/Network-Protocol/Asimpleproxyserver.htm

Le code obtient tout simplement un ruisseau de la part du client, après l'envoie au serveur et après ça devient courant à partir du serveur et envoie la réponse au client. Ce que je voudrais faire est de compresser ce flux avant de les envoyer et de décompresser après qu'il est reçu.

J'ai trouvé la classe GZIPInputStream mais je ne suis pas sûr de savoir comment l'utiliser et ce que j'ai trouvé sur internet ne m'aide pas. Soit je ne comprends pas que tant de choses ou il n'a pas été une bonne solution pour moi.

Mon idée, c'est trop ça, mais je ne suis pas sûr si c'est ok:

final InputStream streamFromClient = client.getInputStream();
final OutputStream streamToClient = client.getOutputStream();
final InputStream streamFromServer = server.getInputStream();
final OutputStream streamToServer = server.getOutputStream();

InputStream gzipStream = new GZIPInputStream(streamFromClient );
try
{
        while ((bytesRead = gzipStream.read(request)) != -1)
       {
                    streamToServer.write(request, 0, bytesRead);
                    streamToServer.flush();
        }
}
catch (Exception e) {
System.out.println(e);
}

Maintenant les données envoyées au serveur doit être compressé avant d'envoyer (mais je ne suis pas sûr si c'est une bonne solution). S'AGIT-IL?

Maintenant, imaginez que le serveur m'envoie les données compressées.
Si ce flux:

final InputStream streamFromServer = server.getInputStream();

est comprimé.

Comment décompresser et d'écrire à la

final OutputStream streamToClient = client.getOutputStream();

Merci pour l'aide, les gars!

OriginalL'auteur Milan Novotný | 2011-11-18