Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 287|回复: 0

[Java线程学习]支持通配符的多线程文件下载

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-11-3 23:59:34 | 显示全部楼层 |阅读模式
    用各种网络下载工具下文件的时候,大多数下载软件支持添加批量下载任务的功能,闲暇之余coding了一个简单的程序,实现批量下载.
    分了三个类
    RegFiles.java主要实现通配符文件地址的构造,提供了一些辅助方法,方便的添加需要下载的URL
    URLFileSaver.java 实现将URL指向的文件保存到本地的功能
    FileDownLoader.java 创建多个线程下载

    大家看code,欢迎提出重构意见

       
        package
         cn.heapstack.study;


        import
         java.util.ArrayList;

        import
         java.util.List;


        /** */
        /**
      * <p>
      * Title:通配符下载地址构建类
      * </p>
      * <p>
      * Description: 1.0版本支持通配符(*)匹配的URL字符串,该匹配配合通配符长度一起使用<P>
      * Example:如果要下载的URL格式为http://www.abc.com/abc(*).zip;
      * (*)代表要匹配的数字,
      * (*)支持10的通配符长度次方个数字,不足的长度位前面补0
      *
      * 当通配符长度为1,匹配的下标可以是0-9,这时要下载的URL格式就是 http://www.abc.com/abc0.zip
      * http://www.abc.com/abc1.zip  http://www.abc.com/abc8.zip
      * http://www.abc.com/abc9.zip
      *
      * 当通配符长度为3,匹配的下标可以是000-999,这时要下载的URL格式就是 http://www.abc.com/abc000.zip
      * http://www.abc.com/abc001.zip  http://www.abc.com/abc099.zip
      * http://www.abc.com/abc999.zip
      * </p>
      * <p>
      * Copyright: Copyright (c) www.heapstack.cn 2006
      * </p>
      *
      * @author jht
      * @version 1.0
      */
       

        public
         
        class
         RegFiles
       
        {
         private List<String> fileList = new ArrayList<String>();

         private String regURL;

         private int length;

         private int from;

         private int to;

        /** *//**
          *
          * @param regURL 带通配符(*)的下载文件地址
          * @param length 通配符长度
          * @param from 起始的数字
          * @param to 结束的数字
          * @throws Exception
          */
        public RegFiles(String regURL, int length, int from, int to) throws Exception {
             this.regURL = regURL;
             this.length = length;
             if(from > to )
                 throw new Exception("Invalied parameter,from should be less than to");
             this.from = from;
             this.to = to;
             
             buildDownLoadFileList();

         }

        public void buildDownLoadFileList() {
             fileList.clear();
             //regURL like  http://www.abc.com/abc(*).zip
             //the dest URL like http://www.abc.com/abc001.zip
             int index = regURL.indexOf("(*)");
             //把(*)替换成相应的需要匹配的URL字符串
             StringBuilder sb = new StringBuilder(regURL);
             sb = sb.delete(index, index + 3);
             for (int j = from; j <= to; j++)
            {
                 StringBuilder tmpsb = new StringBuilder(sb);
                 String strj = String.valueOf(j);
                
                 int strlen = strj.length();
                 int zerocount = length - strlen;
                
                 //add 0 to build the url
                 for (int k = 0; k < zerocount; k++)
                {
                     StringBuilder jsb = new StringBuilder(strj);
                     strj = jsb.insert(0,"0").toString();
                 }
                 fileList.add(tmpsb.insert(index,strj).toString());
                 System.out.println(tmpsb.toString());
             }
         }

        public List getFileList() {
             return fileList;
         }
         
        /** *//**
          * 手动设置文件url列表
          * @param fileList
          */
        public void setFileList(List<String> fileList) {
             this.fileList = fileList;
         }
        /** *//**
          * 在原有基础上添加文件url列表
          * @param appendList
          */
        public void appendFileList(List<String> appendList){
             this.fileList.addAll(appendList);
         }
         
        /** *//**
          * 添加一个要下载的文件url地址
          * @param urlfile
          */
        public void appedURLFile(String urlfile){
             this.fileList.add(urlfile);
         }

        public int getFrom() {
             return from;
         }

        public void setFrom(int from) {
             this.from = from;
         }

        public int getLength() {
             return length;
         }

        public void setLength(int length) {
             this.length = length;
         }

        public String getRegURL() {
             return regURL;
         }

        public void setRegURL(String regURL) {
             this.regURL = regURL;
         }

        public int getTo() {
             return to;
         }

        public void setTo(int to) {
             this.to = to;
         }   
    }
       

       
       
        package
         cn.heapstack.study;

        import
         java.io.BufferedInputStream;

        import
         java.io.FileOutputStream;

        import
         java.io.IOException;

        import
         java.net.HttpURLConnection;

        import
         java.net.URL;


        public
         
        class
         URLFileSaver
        implements
         Runnable
       
        {

         private static final int BUFFER_SIZE = 4096;
         private String destUrl;
         private String fileName;
         
         public URLFileSaver(String destUrl)
        {
             this.destUrl = destUrl;
             int i = destUrl.lastIndexOf("/");
             this.fileName = destUrl.substring(i+1);
         }
         
        public void run() {
            try {
                 saveToFile(destUrl,fileName);
                
                 System.out.println("文件:"+destUrl+"下载完成,保存为"+fileName);
            } catch (IOException e) {
                 System.out.println("文件下载失败,信息:"+e.getMessage());
             }
         }

        /** *//**
          * 将网络文件保存为本地文件的方法
          * @param destUrl
          * @param fileName
          * @throws IOException
          */
        public void saveToFile(String destUrl, String fileName) throws IOException {
             FileOutputStream fos = null;
             BufferedInputStream bis = null;
             HttpURLConnection httpconn = null;
             URL url = null;
             byte[] buf = new byte[BUFFER_SIZE];
             int size = 0;

             // 建立链接
             url = new URL(destUrl);
             httpconn = (HttpURLConnection) url.openConnection();
             // 连接指定的资源
             httpconn.connect();
             // 获取网络输入流
             bis = new BufferedInputStream(httpconn.getInputStream());
             // 建立文件
             fos = new FileOutputStream(fileName);

             System.out.println("正在获取链接[" + destUrl + "]的内容
    将其保存为文件[" + fileName
                     + "]");

             // 保存文件
             while ((size = bis.read(buf)) != -1)
                 fos.write(buf, 0, size);

             fos.close();
             bis.close();
             httpconn.disconnect();
         }
    }
       

       

       
        package
         cn.heapstack.study;


        import
         java.net.Authenticator;

        import
         java.net.PasswordAuthentication;

        import
         java.util.List;


        public
         
        class
         FileDownLoader
       
        {

        public static void saveURLFileList(List<String> urlFileList) {
            for (String aURLfile : urlFileList) {
                 Thread th = new Thread(new URLFileSaver(aURLfile));
                 th.start();
             }
            try {
                 Thread.currentThread().join();
                
            } catch (InterruptedException e) {
                 e.printStackTrace();
             }
         }

        /** *//**
          * 设置代理服务器
          *
          * @param proxy
          * @param proxyPort
          */
        public static void setProxyServer(String proxy, String proxyPort) {
             System.getProperties().put("proxySet", "true");
             System.getProperties().put("proxyHost", proxy);
             System.getProperties().put("proxyPort", proxyPort);
         }

        /** *//**
          * 设置认证用户名与密码
          *
          * @param uid
          * @param pwd
          */
        public static void setAuthenticator(final String uid, final String pwd) {
            Authenticator.setDefault(new Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                     return new PasswordAuthentication(uid, new String(pwd)
                             .toCharArray());
                 }
             });
         }
         
    }
       

       

    main函数测试代码

       
       
        try
         
       
        {
                 RegFiles rf = new RegFiles("http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty(*).jpg",
                         2,0,50);
                 List<String> urlFileList = rf.getFileList();
                 FileDownLoader.saveURLFileList(urlFileList);
                
            }
         
        catch
         (Exception e)
       
        {
                 System.out.println(e.getMessage());
             }
       

        运行效果:
      
       
        http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty00.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty01.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty02.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty03.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty04.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty05.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty06.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty07.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty08.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty09.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty10.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty11.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty12.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty13.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty14.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty15.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty16.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty17.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty18.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty19.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty20.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty21.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty22.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty23.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty24.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty25.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty26.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty27.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty28.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty29.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty30.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty31.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty32.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty33.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty34.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty35.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty36.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty37.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty38.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty39.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty40.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty41.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty42.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty43.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty44.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty45.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty46.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty47.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty48.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty49.jpg
    http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty50.jpg
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty14.jpg]的内容
    将其保存为文件[933421_TN_061229beauty14.jpg]
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty00.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty33.jpg
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty23.jpg]的内容
    将其保存为文件[933421_TN_061229beauty23.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty19.jpg]的内容
    将其保存为文件[933421_TN_061229beauty19.jpg]
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty35.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty36.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty37.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty38.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty39.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty40.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty41.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty42.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty49.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty45.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty43.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty44.jpg
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty25.jpg]的内容
    将其保存为文件[933421_TN_061229beauty25.jpg]
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty46.jpg
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty15.jpg]的内容
    将其保存为文件[933421_TN_061229beauty15.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty24.jpg]的内容
    将其保存为文件[933421_TN_061229beauty24.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty26.jpg]的内容
    将其保存为文件[933421_TN_061229beauty26.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty27.jpg]的内容
    将其保存为文件[933421_TN_061229beauty27.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty29.jpg]的内容
    将其保存为文件[933421_TN_061229beauty29.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty02.jpg]的内容
    将其保存为文件[933421_TN_061229beauty02.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty03.jpg]的内容
    将其保存为文件[933421_TN_061229beauty03.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty11.jpg]的内容
    将其保存为文件[933421_TN_061229beauty11.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty17.jpg]的内容
    将其保存为文件[933421_TN_061229beauty17.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty28.jpg]的内容
    将其保存为文件[933421_TN_061229beauty28.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty16.jpg]的内容
    将其保存为文件[933421_TN_061229beauty16.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty04.jpg]的内容
    将其保存为文件[933421_TN_061229beauty04.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty09.jpg]的内容
    将其保存为文件[933421_TN_061229beauty09.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty10.jpg]的内容
    将其保存为文件[933421_TN_061229beauty10.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty18.jpg]的内容
    将其保存为文件[933421_TN_061229beauty18.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty01.jpg]的内容
    将其保存为文件[933421_TN_061229beauty01.jpg]
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty28.jpg下载完成,保存为933421_TN_061229beauty28.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty16.jpg下载完成,保存为933421_TN_061229beauty16.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty47.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty48.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty31.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty32.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty50.jpg
    文件下载失败,信息:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty34.jpg
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty08.jpg]的内容
    将其保存为文件[933421_TN_061229beauty08.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty21.jpg]的内容
    将其保存为文件[933421_TN_061229beauty21.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty05.jpg]的内容
    将其保存为文件[933421_TN_061229beauty05.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty06.jpg]的内容
    将其保存为文件[933421_TN_061229beauty06.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty12.jpg]的内容
    将其保存为文件[933421_TN_061229beauty12.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty20.jpg]的内容
    将其保存为文件[933421_TN_061229beauty20.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty30.jpg]的内容
    将其保存为文件[933421_TN_061229beauty30.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty07.jpg]的内容
    将其保存为文件[933421_TN_061229beauty07.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty13.jpg]的内容
    将其保存为文件[933421_TN_061229beauty13.jpg]
    正在获取链接[http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty22.jpg]的内容
    将其保存为文件[933421_TN_061229beauty22.jpg]
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty09.jpg下载完成,保存为933421_TN_061229beauty09.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty01.jpg下载完成,保存为933421_TN_061229beauty01.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty18.jpg下载完成,保存为933421_TN_061229beauty18.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty10.jpg下载完成,保存为933421_TN_061229beauty10.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty26.jpg下载完成,保存为933421_TN_061229beauty26.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty29.jpg下载完成,保存为933421_TN_061229beauty29.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty19.jpg下载完成,保存为933421_TN_061229beauty19.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty06.jpg下载完成,保存为933421_TN_061229beauty06.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty08.jpg下载完成,保存为933421_TN_061229beauty08.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty12.jpg下载完成,保存为933421_TN_061229beauty12.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty11.jpg下载完成,保存为933421_TN_061229beauty11.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty07.jpg下载完成,保存为933421_TN_061229beauty07.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty21.jpg下载完成,保存为933421_TN_061229beauty21.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty17.jpg下载完成,保存为933421_TN_061229beauty17.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty04.jpg下载完成,保存为933421_TN_061229beauty04.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty20.jpg下载完成,保存为933421_TN_061229beauty20.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty24.jpg下载完成,保存为933421_TN_061229beauty24.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty25.jpg下载完成,保存为933421_TN_061229beauty25.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty15.jpg下载完成,保存为933421_TN_061229beauty15.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty13.jpg下载完成,保存为933421_TN_061229beauty13.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty02.jpg下载完成,保存为933421_TN_061229beauty02.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty23.jpg下载完成,保存为933421_TN_061229beauty23.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty30.jpg下载完成,保存为933421_TN_061229beauty30.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty03.jpg下载完成,保存为933421_TN_061229beauty03.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty05.jpg下载完成,保存为933421_TN_061229beauty05.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty27.jpg下载完成,保存为933421_TN_061229beauty27.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty14.jpg下载完成,保存为933421_TN_061229beauty14.jpg
    文件:http://img2.pconline.com.cn/pconline/0612/28/933421_TN_061229beauty22.jpg下载完成,保存为933421_TN_061229beauty22.jpg
       

       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/11/3/235932750.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-25 14:15 , Processed in 0.411323 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表