这个是界面,输入的必须是直接的下载地址。
代码如下:
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
);
}
}
}
|