gzip圧縮されたデータの受信と解析について質問です。

現在、Javaで2ちゃんねる専用ブラウザをゼロから作っています。
subject.txtやdatを受信しようとするとgzip化されていたりするわけですが
その受信データをGZIPInputStreamで解凍しながらファイルに書き込もうとしています。

InputStream in = new GZIPInputStream( sock.getInputStream() );
PrintWriter pwOutFile = new PrintWriter(new BufferedWriter( new FileWriter( "tech_subject.txt") ));

みたいな感じで使おうとしてるのですが
GZIPInputStreamの部分で

Exception in thread "main" java.io.IOException: Not in GZIP format
at java.util.zip.GZIPInputStream.readHeader(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)

と、怒られてしまいます。
もしかしたらレスポンスヘッダも一緒にしてるのが原因かなと思うんですが
その場合、ヘッダとボディ(gzip圧縮された本体)を分けて処理する良い方法などはありますでしょうか?