从URL下载文件 - 没有任何作用

时间:2016-06-23 09:19:38

标签: java download

我为我的朋友们运行了一个Minecraft服务器,不久前我非常狡猾地安装了一个安装程序,可以下载mod并将它们正确安装到正确的位置。

在弄清楚如何做我想做的事情大约6个小时后,我成功找到了一个正常工作的安装程序。我今天再试一次,发现它已停止工作了。我一直试图修复它,但无济于事。我找不到任何实际上要下载整个文件的解决方案,而是创建一个空的4KB文件。我尝试了另一台计算机,发生了同样的事情。我正在运行最新版本的Java。

这是我用来下载文件的方法。我使用ReadableByteChannel尝试了解决方案,但是产生了类似的结果,文件空白为1KB。

    public void download(String filename, URL url) {
    try {
        String fileName = filename; 
        URL link = url;

        InputStream in = new BufferedInputStream(link.openStream());
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];
        int n = 0;
        StringBuffer stringBuffer = new StringBuffer();
        while (-1 != (n = in.read(buf))) {
            out.write(buf, 0, n);
        }
        out.close();
        in.close();
        byte[] response = out.toByteArray();

        FileOutputStream fos = new FileOutputStream(fileName);
        fos.write(response);
        fos.close();

        System.out.println("Download complete!");
    } catch (Exception e) {
        System.out.println("Download failed, something went wrong!");
    }
}

上述方法有问题吗?我无法真正了解下载文件的工作原理,否则我自己会对其进行故障排除。我可以在谷歌上找到的任何方法都以完全相同的方式进行。

Printing stack trace:
at Install.download(Install.java:93)
at Install.downloadFile(Install.java:41)
at Install.main(Install.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

编辑:问题已解决,使用其他文件托管网站来托管文件。现在我只需要弄清楚如何在不更改URL的情况下更新文件。

0 个答案:

没有答案