因工作需要必须写个程序自动从特定的网址抓取一个文件下来,而此文件需根据url传递的参数动态生成文件名及其内容,这样的情况如果编写程序?
譬如:
url地址为:http://www.mycompany.com/getfile.php?downdate=20100502
在IE中输入以上地址后的结果是弹出下载的窗口,要求保存文件 BussData_20100502.xls
其中参数值20100502是可变的。
如上所述不知道如何编写代码,望各位路过的帮忙出出思路或者有代码更好,这里先谢过了!
譬如:
url地址为:http://www.mycompany.com/getfile.php?downdate=20100502
在IE中输入以上地址后的结果是弹出下载的窗口,要求保存文件 BussData_20100502.xls
其中参数值20100502是可变的。
如上所述不知道如何编写代码,望各位路过的帮忙出出思路或者有代码更好,这里先谢过了!
的值,既然能取到值,传的参数也就知道了啊,那文件名就是BussData_+参数.xls
InputStream is = url.openConnection().getInputStream();//访问后返回的结果
is.read(buffer) 然后将buffer写出到文件.基本的流操作.前提是那个下载地址不需要用户名密码之类的。否则还得在请求的时候附加用户信息
下载的,做个servlet下载文件Download.servlet,处理传过来的参数downdate=20100502,下载的链接:
<a href="/branch/Download?filename=****" alt="">
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
while (!line.equals("exit")) {
URL url = new URL(
"http://www.mycompany.com/getfile.php?downdate=20100502?downdate="
+ line);
InputStream is = url.openConnection().getInputStream();
byte[] array = new byte[is.available()];
is.read(array);
is.close();
FileOutputStream fosr = new FileOutputStream("BussData_" + line
+ ".xls");
fosr.write(array);
fosr.close();
line = br.readLine();
}
br.close();
}