从https站点读取和解压缩gzip压缩文件会提前完成

时间:2017-08-10 11:24:41

标签: java url gzip inputstream outputstream

我要做的是从https网站下载一个gzip压缩文件并动态解压缩。为此,我有以下代码。虽然代码会动态下载和解压缩,但它不会对整个文件执行此操作。条件(readLine = br.readLine()) != null在达到输入结束之前变得很多。可能是什么问题呢?还有其他方法可以解决吗?

import java.net.*;
import java.io.*;
import javax.net.ssl.*; 
import java.util.zip.GZIPInputStream;
import java.nio.charset.StandardCharsets;
......

BufferedReader br = null;
PrintWriter pw = null;

try 
{       
    URL myurl = new URL(
 "https://dnanexus-rnd.s3.amazonaws.com/NA12878-xten/reads/NA12878D_HiSeqX_R1.fastq.gz");
    HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
    GZIPInputStream gzis = new GZIPInputStream(con.getInputStream());
    br = new BufferedReader(new InputStreamReader(gzis, StandardCharsets.UTF_8));

    pw = new PrintWriter(new File("NA12878D_HiSeqX_R1.fastq"));
    String readLine;
    while ((readLine = br.readLine()) != null)
        pw.println(readLine);
} 
finally 
{
    pw.close();
    br.close();
}

请注意,如果我只是下载gzip文件本身,也就是说,也不能解压缩它,它下载得很好。所以,看起来服务器本身没有任何问题。而且,我没有任何例外。

0 个答案:

没有答案