单线程下载器

转载 2012年03月25日 18:21:48

这个是界面,输入的必须是直接的下载地址。

代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package net;
 
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
 
public class SingleThreadDownload extends JFrame implements ActionListener{
    public SingleThreadDownload(){
        panel.setLayout(new FlowLayout());
        label1.setFont(new Font("雅黑", Font.BOLD, 15));
        panel.add(label1);
        panel.add(label2);
        panel.add(urlField);
        panel.add(StartButton);
        panel.add(resetButton);
        panel.add(exitButton);
        setContentPane(panel);
        StartButton.addActionListener(this);
        resetButton.addActionListener(this);
        exitButton.addActionListener(this);
        setSize(400, 400);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
 
    public void download(String address) throws Exception{
        URL url = new URL(address);
        URLConnection urlcon = url.openConnection();
        urlcon.connect();
        InputStream in = urlcon.getInputStream();
        String filePath = url.getFile();
        int pos = filePath.lastIndexOf("/");
        String fileName = filePath.substring(pos + 1);
        FileOutputStream out = new FileOutputStream("D:\\" + fileName);
        byte[] bytes = new byte[1024];
        int len = in.read();
        while(len != -1){
            out.write(bytes, 0, len);
            len = in.read();
        }
        out.close();
        in.close();
        JOptionPane.showMessageDialog(this, "下载完毕");
    }
 
    public static void main(String[] args){
        new SingleThreadDownload();
    }
 
    private final JPanel panel = new JPanel();
    private final JLabel label1 = new JLabel("网络资源的单线程下载:");
    private final JLabel label2 = new JLabel("网络资源的网址:");
    JButton StartButton = new JButton("点击开始下载");
    JButton resetButton = new JButton("清空");
    JButton exitButton = new JButton("退出");
    JTextField urlField = new JTextField(20);
 
    @Override
    public void actionPerformed(ActionEvent e){
        if(e.getSource() == StartButton){
            if("".equals(urlField.getText())){
                JOptionPane.showMessageDialog(this, "请输入资源地址");
            }
            String url = urlField.getText();
            try{
                download(url);
            }catch(Exception e1){
                JOptionPane.showMessageDialog(this, "资源地址有误,请检查,谢谢!");
                e1.printStackTrace();
            }
        }else if(e.getSource() == resetButton){
            urlField.setText("");
        }else{
            System.exit(0);
        }
 
    }
 
}

单线程下载和多线程下载

单线程下载1.单线程下载比较简单,就是开启一个线程,然后打开URL连接按照字节的方式读取流,写入文件就可了 2.用AsyncTask实现单线程下载class DownLoadSingle exten...
  • ForrestL
  • ForrestL
  • 2015年09月14日 21:54
  • 297

Android第九讲——网络(四) 文件的下载(单线程下载、多线程下载)

我们学习了连接网络与服务器后不只是仅仅上一些网页,与服务器进行交流。我们还可以从网上下载文件(Download)文件的下载分为多种: 1.单线程下载 2.多线程下载 3.多线程断点续传 单线程...
  • Went_Gone
  • Went_Gone
  • 2015年09月16日 22:34
  • 742

即拿即用-Android单线程断点下载

之前有看过一个著名的断点下载的框架MultiThreadDownload,用的是线程池开启下载任务,点击暂停的时候将断点的信息保存在数据库里面,下次拿出来继续下载,本文的思路也和这个差不多。   ...
  • iromkoear
  • iromkoear
  • 2017年04月18日 23:47
  • 575

Android 实现文件的单线程断点续传下载

网络下载文件是一项很常用的技术,由此断点续传显得尤为重要了,下面来实现 一个单线程断点续传的demo,完成项目需要:基础网络知识(Http),了解android界面处理机制,Service的绑定与解绑...
  • ccapton
  • ccapton
  • 2017年01月09日 20:45
  • 1092

Android 断点续传基础之单线程下载

前天去驾校刷课时,不曾想出来的时候下起了雪,真的好冷啊。恰巧我是走着去的,回来的路上本以为只有雪才是那么的美,那么的纯洁。可是那都是表面,当雪落在地面,终究是一滩污水,就像人!唉,一场雪下不尽冬天的冷...
  • qq_27489007
  • qq_27489007
  • 2016年12月27日 20:26
  • 682

单线程轮循机制批量下载图片

listview 在为item 添加从网上下载下来的图片时, 如果每次都整合一个item时都需要new一个Thread去下载图片,listview长时间滑动时会产生大量线程。 用单线程轮循机制则可以解...
  • qq_21046135
  • qq_21046135
  • 2016年02月15日 21:30
  • 484

android 单线程多任务断点排队下载(支持多界面刷新)

最近在做一个单线程多任务的断点排队下载的功能,网上确实有很多这样的demo。但是呢我发现大部分网上的demo都是很些不完整的要么就是有缺陷的,可能是我还没找到。今天我给大家带来的一个功能完整的并且可以...
  • u013895206
  • u013895206
  • 2016年03月29日 18:45
  • 3150

单线程下载和多线程下载

  • bianshaopeng
  • bianshaopeng
  • 2015年09月14日 22:26
  • 137

Android XUtils单线程断点续传

第一步:导入Xutils Jar包 第二部:添加权限 android:name="android.permission.ACCESS_NETWORK_STATE"/> android:name...
  • taa1007
  • taa1007
  • 2017年11月13日 13:32
  • 703

单线程下载,并实现断点续传

作者: 夏至 转载请保留以下申明,谢谢 http://blog.csdn.net/u011418943/article/details/56674086 现在网络框架越来越多,对于下载一个文件来...
  • u011418943
  • u011418943
  • 2017年02月23日 15:56
  • 402
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单线程下载器
举报原因:
原因补充:

(最多只允许输入30个字)