Java 从URL下载文件--什么都不起作用

Java 从URL下载文件--什么都不起作用,java,download,Java,Download,我为我的朋友运行了一个Minecraft服务器,不久前我非常拙劣地组装了一个安装程序,可以下载mod并将它们正确地安装到正确的位置 经过大约6个小时的思考,我终于找到了一个可以正常工作的安装程序。我今天又试了一次,发现它已经停止工作了。我一直想把它修好,但没用。我找不到任何实际下载整个文件的解决方案,而是创建了一个4KB的空文件。我在另一台电脑上试过,同样的事情发生了。我正在运行最新版本的Java 这是我用来下载文件的方法。我尝试过使用Techannel可读的解决方案,但结果类似,只有1KB的空

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

经过大约6个小时的思考,我终于找到了一个可以正常工作的安装程序。我今天又试了一次,发现它已经停止工作了。我一直想把它修好,但没用。我找不到任何实际下载整个文件的解决方案,而是创建了一个4KB的空文件。我在另一台电脑上试过,同样的事情发生了。我正在运行最新版本的Java

这是我用来下载文件的方法。我尝试过使用Techannel可读的解决方案,但结果类似,只有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的情况下更新文件。

首先,如果有堆栈跟踪,您应该打印堆栈跟踪。还有,StringBuffer的作用是什么?您是否尝试使用curl下载文件以确保服务器正常工作?您的代码是否返回“下载完成!”或“下载失败…”?在后面的例子中:e的Stacktrace告诉你什么?你有任何代理吗?@Jeroen,事实证明,我从(googledrive)下载的服务器显然无法用于我试图做的事情。我把文件放在另一个托管服务上,现在它工作得很好。谢谢首先,如果有堆栈跟踪,则应打印堆栈跟踪。还有,StringBuffer的作用是什么?您是否尝试使用curl下载文件以确保服务器正常工作?您的代码是否返回“下载完成!”或“下载失败…”?在后面的例子中:e的Stacktrace告诉你什么?你有任何代理吗?@Jeroen,事实证明,我从(googledrive)下载的服务器显然无法用于我试图做的事情。我把文件放在另一个托管服务上,现在它工作得很好。谢谢