我正在创建一个 Java 应用程序,它将接收 .tar 文件并从这些 .tar 文件中检索所有文件。我知道您可以使用GZIPInputStream
从 .tar 文件中获取文件,但是是否可以从GZIPInputStream
as a中获取这些文件FileInputStream
,如下所示?
InputStream is = new GZIPInputStream(new FileInputStream(file));
是的,这是可能的,因为 GZipInputStream 的 CTOR 允许您接受 InputStream 作为参数(GZipInputStream 是 InputStream 的包装器)。然后你需要做的就是按照你可以在互联网上找到的例子来提取文件。
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
}