我要做的是从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文件本身,也就是说,也不能解压缩它,它下载得很好。所以,看起来服务器本身没有任何问题。而且,我没有任何例外。