import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
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.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
//测试类
public class Exec {
public static void main(String[] args) {
// 创建窗体类变量
DemoWindow dw = new DemoWindow("网络文件下载");
// 将窗体的宽度和高度分别设置为屏幕宽度和屏幕高度的1/3,左上角位置也设置为屏幕宽度和屏幕高度的1/3处
Toolkit theKit = dw.getToolkit();
Dimension wndSize = theKit.getScreenSize();
dw.setBounds(wndSize.width / 3, wndSize.height / 3, wndSize.width / 3,
wndSize.height / 3);
// 点击关闭按钮可以退出程序
dw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗体为可见
dw.setVisible(true);
}
}
// 界面窗体
class DemoWindow extends JFrame implements ActionListener {
// 输入网络文件URL的文本框
JTextField jtf = new JTextField(25);
// 操作按钮
JButton jb = new JButton("下载");
// 显示网络文件信息的文本区
JTextArea jta = new JTextArea();
// 设置文本区的滚动条
int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
JScrollPane jsp = new JScrollPane(jta, v, h);
// 布局面板
JPanel jp = new JPanel();
// 网络文件下载
Downloader downloader;
// 构造函数
public DemoWindow(String title) {
super(title);
// 窗体布局
jp.setLayout(new FlowLayout(FlowLayout.LEFT));
jp.add(jtf);
jp.add(jb);
add(jp, BorderLayout.NORTH);
add(jsp, BorderLayout.CENTER);
// 添加事件监听器
jtf.addActionListener(this);
jb.addActionListener(this);
}
// 响应单击按钮
public void actionPerformed(ActionEvent e) {
// 创建网络文件下载类变量
downloader = new Downloader(jtf.getText(), jta);
// 启动下载线程
Thread thread = new Thread(downloader);
thread.start();
}
}
// 网络文件下载类
class Downloader implements Runnable {
// 网络文件的URL
String urlString;
// 显示网络文件信息的文本区
JTextArea jta;
// 构造函数
public Downloader(String urlString, JTextArea jta) {
// 设置属性
this.urlString = urlString;
this.jta = jta;
}
// 下载网络文件的线程方法
public void run() {
// 网络文件的相关信息
StringBuffer info = new StringBuffer();
try {
// 网络文件的URL
URL url = new URL(urlString);
// 打开该网络文件的URL连接
URLConnection urlConn = url.openConnection();
// 添加网络文件的相关信息
info.append("主机: " + url.getHost() + "\n");
info.append("端口: " + url.getDefaultPort() + "\n");
info.append("网络文件的类型: " + urlConn.getContentType() + "\n");
info.append("长度: " + urlConn.getContentLength() + "\n");
info.append("正在下载...");
// 显示网络文件的相关信息
jta.setText(info.toString());
// 创建网络文件的输入流
InputStream is = urlConn.getInputStream();
// 获取网络文件的文件名称
String localFileName = url.getFile().substring(
url.getFile().lastIndexOf("/") + 1);
// 创建本地文件输出流
FileOutputStream fos = new FileOutputStream(localFileName);
// 读取网络文件到本地文件
int data;
while ((data = is.read()) != -1) {
fos.write(data);
}
// 关闭流
is.close();
fos.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
jta.append("下载完毕!");
}
}
分享到:
相关推荐
C# 自制网络文件下载器,界面设计大神勿喷,将会持续更新,文件为压缩包,是包含源代码的,请大神看到代码后多多提建议,我就可以早日更新。 V 1.0 1.可实现下载网络文件 2.可视化操作 3.使用简单 4.无广告 5.下载...
批量 按照M3U8 最多50线程 下载TS文件。 1.网页打开视频后 按F12 找到M3U8文件 下载到本地。 2.找到一个*.ts文件的真实路径, 如 http://1.1.1.1/a/b/c/001.ts 和 http://1.1.1.1/a/b/c/002.ts 则 ...
钉钉群直播回放下载工具 直播视频下载 回放下载 视频下载 通用视频下载器 直播下载器 通用下载器 可以下载各大平台的直播间实时直播的视频; 可以下载网页上正在浏览的视频; 可以下载只能播放但是确无法分享网址的...
批量 按照M3U8 最多50线程 下载TS文件。 1.网页打开视频后 按F12 找到M3U8文件 下载到本地。 2.找到一个*.ts文件的真实路径, 如 http://1.1.1.1/a/b/c/001.ts 和 http://1.1.1.1/a/b/c/002.ts 则 ...
资源下载器,速度超快,可以快速下载链接,网盘,种子的资源
2018最新版百度文库下载器,免费下载,支持各种文档格式
Flash抓取工具 FLASH文件下载器 网页FLASH抓取器V3.0 绿色特别版
下载谷歌浏览器(Chrome)扩展离线安装包crx文件最简单的方法视频
我们提供的浏览器及下载器使寻找和下载文件的过程变得更简单。(来自酷友wyz0yf的发现) GetThemAll软件参数: - 可下载视频 (HTML5及 HD 视频) ,音乐,压缩文件,图像,附件等等 ; - 智能快速下载器具有快速下载,...
超级HTTP下载器,是多年从事游戏下载经验的结果,该下载器已在世界各地广泛应用于游戏下载,将客户端游戏运行于网页插件上,可以实现边玩边安装。可以解决大文件、游戏下载的问题。是博智成多年沥血之作。
超级网站整站下载器 网站全站下载,下载你想要的网址的源文件。
本人自制的C#单线程下载器,可下载具有防盗功能的网站文件,小软件虽简单,但功能完善(还包含了解压缩Zip文件的功能),因此,在某些方面来说可以代替下载软件进行下载东西了^_^ 为了推动C#的发展,要人也发布点...
Total Commander 是来自瑞士的一款Windows平台上最为优秀的一款文件管理软件,作者是知名软件工程师Christian Ghisler,也叫tc文件管理器,拥有文件快速预览、快速搜索与支持多标签模式、文件比较和批量重命名以及 ...
百度文档 豆丁文档 免费下载器 亲测可以下载百度和豆丁的文档,需安装,超小,无毒
超迷你文件分割器:TextDivider2.3_CPP.rar(400K) 超迷你文件分割器:TextDivider2.3_CPP.rar(400K) 超迷你文件分割器:TextDivider2.3_CPP.rar(400K)
超级好用的万能文件免杀捆绑器,可以自定图标,插入数字签名
另外现在的邮件系统很多不能发送超过1M以上的大附件,而有时我们又不得不通过邮件系统传送文件,为克服大容量数据的交换和备份问题,超级文件分割器诞生了 该文件分割器有以下几个特点: 1.界面方便友好,个性...
《小白文件管理器》是一款高效的文件管理器,尤其适合在电视这些大屏设备上使用:特别优化的操作流程保证了使用遥控器也能完成各种文件管理操作。功能上,除了支持最基本的安装、卸载、复制、粘贴、删除操作之外,还...
m3u8下载器,简单容易用,直接下载解压,然后打开,复制地址进去,就可以下载m3u8的文件视频。
然后就使用“批量下载”功能打开该文件,软件就会读取这些地址,并自动开始下载。 不过该功能不是很完善,请尽量不要使用。 9. 下载说明 目前冰点文库软件只发布在官网(http://www.hongbaoshu.net),霏凡,华军...