我一直在尝试用java编写一个程序,可以为我从在线ftp服务器下载许多.gz文件。这是我一直在使用的:
public static void main(String[] args) throws IOException {
URL url = new URL("ftp://ftp.ncbi.nih.gov/pub/geo/DATA/SOFT/by_series/GSE10/");
URLConnection con = url.openConnection();
BufferedInputStream in = new BufferedInputStream(con.getInputStream());
FileOutputStream out = new FileOutputStream("GSE10_family.soft.gz");
int i = 0;
byte[] bytesIn = new byte[3000000];
while ((i = in.read(bytesIn)) >= 0) {
out.write(bytesIn, 0, i);
}
out.close();
in.close();
}
程序运行并下载文件一切正常。但是,当我尝试解压缩 .gz 文件时,它会解压缩为 .cpgz 文件,然后创建 .cpgz 到 .gz 等的无限循环。
当我手动下载此文件时,它会解压缩并且一切都很好,所以我知道这不是文件的问题。
如有任何建议,我们将不胜感激!非常感谢!
最佳答案
当我打印出您下载的文件的内容时,它显示为
-r--r--r-- 1 ftp anonymous 2311751 Jan 29 16:45 GSE10_family.soft.gz
如果我下载文件而不是目录,我会得到一个 gzip 文件。
$ gunzip GSE10_family.soft.gz
$ ls -l GSE10_family.soft
----------+ 1 peter None 7698802 2011-06-09 16:24 GSE10_family.soft
关于java - 用java编写程序下载.gz文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6295220/