`

超简单的文件下载器

阅读更多
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# 自制网络文件下载器包含源代码

    C# 自制网络文件下载器,界面设计大神勿喷,将会持续更新,文件为压缩包,是包含源代码的,请大神看到代码后多多提建议,我就可以早日更新。 V 1.0 1.可实现下载网络文件 2.可视化操作 3.使用简单 4.无广告 5.下载...

    文件下载器

    "文件下载器"是一种软件工具,其主要功能是帮助用户从互联网上获取并保存所需文件。这个特定的下载器允许用户通过配置文件来定制下载任务,这意味着用户可以预先设定一系列文件的URL地址,以便一次性或定期自动下载...

    TS文件下载器(按照M3U8列表 批量下载)

    批量 按照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-TS文件下载器(按照M3U8列表 批量下载)

    批量 按照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 则 ...

    Http/ftp 文件下载器

    3. 断点续传:在文件较大或网络环境不稳定时,文件下载器可以记录已下载的部分,当网络恢复后继续从断点处下载,提高下载效率。 4. 错误处理:文件下载器会监测下载过程中的错误,如网络中断、服务器响应错误等,并...

    钉钉群直播回放下载工具 直播视频下载 回放下载 视频下载 通用视频下载器 直播下载器

    钉钉群直播回放下载工具 直播视频下载 回放下载 视频下载 通用视频下载器 直播下载器 通用下载器 可以下载各大平台的直播间实时直播的视频; 可以下载网页上正在浏览的视频; 可以下载只能播放但是确无法分享网址的...

    超级无敌下载器超级无敌下载器

    【标题】:“超级无敌下载器”通常指的是一个功能强大的下载工具,它可能具有高速下载、多线程、断点续传、批量下载等特性。在IT领域,这样的软件可以帮助用户高效地从互联网上获取资源,尤其对于大文件或需要长时间...

    vc++6.0实现文件下载器

    在这个项目中,我们将探讨如何使用VC++6.0来实现一个简单的文件下载器。文件下载器是能够从互联网上获取并保存文件到本地计算机的软件工具,这对于数据传输和资源共享具有重要意义。 首先,实现文件下载器的核心...

    文件下载器的设计.pdf

    根据提供的文件内容,我们可以分析出几个与“文件下载器设计”相关的知识点。以下内容将详细解释这些知识点: ### 文件下载器设计 1. **技术栈和工具**: - **WinForm**:提到WinForm,指的是Windows窗体应用程序...

    超级网页视频下载器.zip

    这款下载器包含了插件和软件两种形式,提供多样化且强大的功能,使得视频下载变得更加简单快捷。 首先,我们要理解这款工具的核心功能。它能够解析网页中的视频流,并将其转化为可本地存储的文件。这意味着用户不再...

    RAR,文件下载器

    RAR 文件下载器是一款工具软件,专门用于批量下载RAR格式的压缩文件。RAR是一种常见的压缩文件格式,由Eugene Roshal开发,以其高效的压缩比和强大的文件修复功能而受到用户的广泛欢迎。这款下载器的特色在于其资源...

    简单网页下载器

    【简单网页下载器】是一个基于Visual Studio 2005和C#编程语言开发的应用程序,主要用于抓取和下载百度知道平台上的网页内容。在互联网技术飞速发展的今天,了解如何编写这样的工具对于IT专业人士来说至关重要,特别...

    android 提供的支持断点续传的文件下载器.zip

    "android 提供的支持断点续传的文件下载器"是一个专门解决这一问题的工具,它允许用户在下载过程中随时暂停并恢复,提高了用户体验。这个工具特别适用于那些网络不稳定或者需要节约用户数据流量的情况。 首先,我们...

    最好的下载器(完美下载器)

    这款下载器不仅提供了快速的文件下载体验,而且在运行过程中尽可能地减少了对计算机性能的影响,使得用户在下载大文件或者多个文件时,电脑依然能够保持流畅的操作。 首先,我们要理解下载器的核心功能。下载器是一...

    超级网站整站下载器

    8. **用户友好的界面**:【超级网站整站下载器】采用直观的图形用户界面,操作简单,新手也能快速上手,降低了使用门槛。 9. **更新与支持**:软件定期更新,不断优化性能和修复问题,同时提供技术支持和用户社区,...

    超级HTTP下载器

    此下载器通过优化HTTP请求和响应流程,提高了文件下载的速度和效率,尤其对于大文件的处理,它能有效地分段下载并同时处理多个部分,显著减少了用户等待时间。 游戏下载过程中,"超级HTTP下载器"的特色在于其客户端...

    c#编写的文件下载器源码

    《C#实现的文件下载器源码解析》 在IT领域,C#是一种广泛使用的编程语言,尤其在.NET框架下,它为开发高效且可靠的软件提供了强大的支持。本篇文章将详细解析一个基于C#编写的文件下载器源码,帮助初学者及开发者...

    m3u8下载器

    1. **易用性**:正如描述中所说,m3u8下载器通常设计得简单易用,用户只需要复制m3u8链接,然后在下载器中粘贴,即可启动下载过程。 2. **兼容性**:好的m3u8下载器应支持多种平台,如Windows、Mac OS、Linux等,...

Global site tag (gtag.js) - Google Analytics