java - 用java编写程序下载.gz文件?

标签 java

我一直在尝试用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/

相关文章:

java - 如何获取用户在相关微调器上选择的数据?

java - 使用 ANT 复制多个文件和目录

java - 创建新的 Maven 项目时 Eclipse 不显示 Artifact

java - 英语 - 莫尔斯翻译器

java - 使用 Facebook SDK 和 ParseFacebookUtils 登录时出现 NullPointerException

java - Android Studio : Countdown timer which is also running when the app is closed

java - 在java中从txt读取变量

java - 如何在复杂表达式中计算 java 增量语句

java - Java继承中限制被重写方法的范围

java - 连接到 AS400 DB2 服务器 JDBC 时出错