我正在创建一个Java应用程序,它将接收.tar文件并从这些.tar文件中检索所有文件。我知道您可以使用GZIPInputStream
从.tar文件中获取文件,但是可以将这些文件从GZIPInputStream
作为FileInputStream
获取,如下所示吗?
InputStream is = new GZIPInputStream(new FileInputStream(file));
答案 0 :(得分:1)
是的,由于GZipInputStream的CTOR可以让你接受一个InputStream作为参数(GZipInputStream是这个意义上的输入流的包装器)。然后,您需要做的就是按照互联网上可以找到的示例,例如this来提取文件。
答案 1 :(得分: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
}