使用Java下载在服务器中创建的文件

时间:2014-04-24 07:09:32

标签: java file-io

我正在尝试从给定的网址下载文件。该URL不是直接文件URL。当手动在浏览器中提供此URL时,我们会收到下载/保存提示。

例如,http://www.my-domain.com/download/type/salary/format/excel

我在URL中没有问题直接在URL中有文件名。在上面的URL中,服务器根据格式和类型生成文件。

在Java中我试图使用以下代码下载文件。文件已创建,但内容只是域内容,而不是实际的Excel数据。

URL url = new URL("http://www.my-domain.com/download/type/salary/format/excel");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();

float totalDataRead = 0;
BufferedInputStream in = new BufferedInputStream(connection.getInputStream());
FileOutputStream fos = new FileOutputStream("c:\\test.xls");
BufferedOutputStream bout = new BufferedOutputStream(fos, 1024);

byte[] data = new byte[1024];
int i = 0;

while ((i = in.read(data, 0, 1024)) >= 0) {
    totalDataRead = totalDataRead + i;
    bout.write(data, 0, i);
}

bout.close();
in.close();

2 个答案:

答案 0 :(得分:0)

内容是服务器为该URL发送的内容。你无法从客户端做任何事情。如果它包含Javascript,例如它就不会被执行。

答案 1 :(得分:0)

当你想解决问题时,你必须使用足够的工具来完成任务。可以在poi.apache.org找到适当的工具。
看看Apache POI