2010-12-06 5 views
2
String inFileName = testDoc.gz; 

File inFile = new File(inFileName); 
System.out.println(inFileName); 
FileInputStream fileStream = new FileInputStream(inFile); 
GZIPInputStream gzipInputStream = new GZIPInputStream(fileStream); 

を受け付けていませんが、エラーを返します。最後の行で上記のコードを実行するとGZIPは、FILESTREAM

java.io.IOException: Not in GZIP format 

私は、複数の文書でそれを試してみましたが、問題を見ることができません。

EDIT:ドキュメントが私によって作成されていない、ダウンロードされました。それらは.gz形式であり、複数のドキュメントでは異なる.gzファイルを意味します。

+0

複数のドキュメントでは、複数のgzippedドキュメントを意味しますか? – OrangeDog

+0

これらのドキュメントの一部をgzipユーティリティで最初に解凍し、それらが実際に有効であることを確認してから、存在しないかもしれないコードの欠陥を追跡し始めることをお勧めします。 –

+0

@Jim Toughどうやってやるの? – Jon

答えて

0

GZIPInputStreamは、GZIPファイルとともに動作し、入力を解凍します。 GZIPOutputStreamは、あなたが書き込むものを圧縮します。したがって、データを圧縮する場合は、GZIPOutputStreamに書き込む必要があります。

ファイルを圧縮するには、FileInputStreamで読み込み、FileOutputStreamをGZIPOutputStreamでラップします。入力ファイルからバッファに読み込み、完了するまでバッファをGZIPOutputStreamに書き込み、次にGZIPOutputStreamを閉じます。

データを解凍するには、GZIPInputStreamで読み取ることができます。私はちょうどそれをチェックし、それは動作します。コマンドラインでgzipを使ってファイルを圧縮し、GZIPInputStream(FileInputStreamをラップする)で読み込みます。

+0

大変申し訳ありませんが、わかりません。 GZIPOutputStreamとして.gzファイルを書き直してから、GZIPIputStreamとして再読み込みする必要があると言っていますか? – Jon

+0

奇妙な答えです。質問に答えない。 – EJP

関連する問題