2

我正在创建一个 Java 应用程序,它将接收 .tar 文件并从这些 .tar 文件中检索所有文件。我知道您可以使用GZIPInputStream从 .tar 文件中获取文件,但是是否可以从GZIPInputStreamas a中获取这些文件FileInputStream,如下所示?

InputStream is = new GZIPInputStream(new FileInputStream(file)); 
4

2 回答 2

1

是的,这是可能的,因为 GZipInputStream 的 CTOR 允许您接受 InputStream 作为参数(GZipInputStream 是 InputStream 的包装器)。然后你需要做的就是按照你可以在互联网上找到的例子提取文件。

于 2012-06-22T16:25:41.820 回答
0

GZIPInputStream扩展InputStream(不是直接)所以我认为没关系。试试这个:

InputStream in = new java.util.GZIPInputStream(new FileInputStream(file));
byte[] buffer = new byte[1024];
int read = 0;
while (( read = in.read(buffer, 0, 1024)) > 0)
{
     // do sth
}
于 2012-06-22T16:17:17.093 回答