标签:blog java os io for ar art cti
package com.longneo.downloader;
import java.awt.*;
import java.awt.event.*;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.swing.*;
public class Downloader {
private Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
private final JFrame fm = new JFrame();
private final JPanel panel = new JPanel();
private final JLabel label1 = new JLabel("网络资源的下载 ");
private final JLabel label2 = new JLabel("网络资源地址:");
private final Al al = new Al();
JButton StartButton = new JButton("开始下载");
JButton resetButton = new JButton("清空");
JButton exitButton = new JButton("退出");
JTextField urlField = new JTextField(20);
public void init(){
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);
fm.setContentPane(panel);
StartButton.addActionListener(al);
resetButton.addActionListener(al);
exitButton.addActionListener(al);
fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fm.setSize(400, 200);
fm.setResizable(true);
fm.setLocation((screenSize.width-fm.getWidth())/2,(screenSize.height-fm.getHeight())/2);
fm.setVisible(true);
}
public class Al implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
if(e.getSource() == StartButton){
if("".equals(urlField.getText())){
JOptionPane.showMessageDialog(fm, "请输入资源地址");
return;
}
String url = urlField.getText();
try{
download(url);
}catch(Exception e1){
JOptionPane.showMessageDialog(fm, "地址有误,请检查,谢谢!");
e1.printStackTrace();
}
}else if(e.getSource() == resetButton){
urlField.setText("");
}else{
System.exit(0);
}
}
}
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("F:\\" + 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(fm, "下载完毕");
}
}
标签:blog java os io for ar art cti
原文地址:http://www.cnblogs.com/longneo/p/3922721.html