从服务器下载文件的java代码

时间:2011-03-17 06:22:39

标签: java ftp fileinputstream

在Windows中使用java代码我需要从放在服务器中的目录下载几个文件。服务器中的那些文件是单独生成的。所以我不知道那些文件的名称。有没有办法使用JAVA下载它并将其保存在特定的文件夹中。

我正在使用apache tomcat。

我读了与java文件下载相关的所有其他线程。但它们都不能满足我的要求。

6 个答案:

答案 0 :(得分:8)

  try {
        // Get the directory and iterate them to get file by file...
        File file = new File(fileName);

        if (!file.exists()) {
            context.addMessage(new ErrorMessage("msg.file.notdownloaded"));
            context.setForwardName("failure");
        } else {
            response.setContentType("APPLICATION/DOWNLOAD");
            response.setHeader("Content-Disposition", "attachment"+ 
                                     "filename=" + file.getName());
            stream = new FileInputStream(file);
            response.setContentLength(stream.available());
            OutputStream os = response.getOutputStream();      
            os.close();
            response.flushBuffer();
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (stream != null) {
            try {
                stream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

希望你有所了解......

答案 1 :(得分:2)

您可以使用HttpURLConnection通过HTTP下载文件,HTTPS

答案 2 :(得分:2)

使用java.net.URLjava.net.URLConnection类。

答案 3 :(得分:2)

只有服务器列出目录内容才有可能。如果是,您可以发出HTTP请求:

http://server:port/folder

将为您提供文件列表。

一旦有了这个,你就可以通过解析这个http请求的输出来下载单个文件。

答案 4 :(得分:2)

您好,您可以使用以下代码段直接关闭文件:

    URL oracle = new URL("http://www.example.com/file/download?");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);
    in.close();

请参考此[URL]中的openStream:http://docs.oracle.com/javase/tutorial/networking/urls/readingURL.html

答案 5 :(得分:1)

如果是服务器,则该过程必须类似于使用FTP凭据来加载文件。这java file download example可能会对您有所帮助。