日期:2014-05-19  浏览次数:20556 次

J2ee实现批量下载
给位大虾,今天想做一个批量下载,希望大家能给我点指引,我想实现的功能就是每个链接前面有一个复选框,下面有一个下载选中项,我希望单击就能下载选中的那些链接,大家都来指教一下该怎么做!
------解决方案--------------------
文件的传输都是用的流,你可以用一个流传输多个文件,一次一个文件,传完一个flash下
------解决方案--------------------
那种选多个资源,然后一次下载,基本上都是得到压缩文件. 你可以自己后台压缩好再下载
------解决方案--------------------
选择之后后台根据选择的文件进行压缩,然后提供压缩文件的数据流就行了!
------解决方案--------------------
HttpURLConnection
------解决方案--------------------

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main (String[] args) {
        System.out.println(area("http://ipwhois.cnnic.net.cn/ipwhoisresult.php?query_option=ipv4&txtquery=123.123.123.123"));
    
    }
    public static String area(String urlAddress){
        try {
            URL url= new URL(urlAddress);
            HttpURLConnection h=(HttpURLConnection)url.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(h.getInputStream()));
            StringBuilder sb = new StringBuilder();
            String s;
            while((s = in.readLine()) != null){
                sb.append(s);
            }
            s = sb.toString();
            return mat(s, "网络名.*?>\\s+(.*?)<");
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "未找到相应匹配";
    }
    public static String mat(String source, String regex){
        Pattern p = Pattern.compile(regex);
        Matcher matcher = p.matcher(source);
        while(matcher.find()){
            return matcher.group(1);
        }
        return " ";
    }
}



getInputStream()就是文件流,保存到本地,等批量下载后用zip打包


------解决方案--------------------