首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

J2ee实现批量上载

2012-12-30 
J2ee实现批量下载给位大虾,今天想做一个批量下载,希望大家能给我点指引,我想实现的功能就是每个链接前面有

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打包


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



import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.apache.tools.zip.ZipOutputStream;

   public static File zipFile(String zipName, File[] files) {
      File file = new File(zipName);

      try {
         ZipOutputStream out = new ZipOutputStream(file);

         for(int i = 0; i < files.length; i++) {
            if(files[i] == null) {
               continue;
            }

            FileInputStream in = new FileInputStream(files[i]);
            ZipEntry entry = new ZipEntry(files[i].getName());
            out.putNextEntry(entry);
            int len = 0;
            byte[] bytes = new byte[256];

            while((len = in.read(bytes, 0, bytes.length)) != -1) {
               out.write(bytes, 0, len);
            }

            out.closeEntry();
            in.close();
         }

         out.flush();
         out.close();
      }
      catch(Exception e) {
         e.printStackTrace();
      }

      return file;
   }

热点排行