`
feipigwang
  • 浏览: 770232 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java 通过 URL 类和 URLConnection类 以及输入流实现文件下载功能

 
阅读更多

package udp;
import java.net.* ;
import javax.swing.* ;
import java.awt.event.*;
import java.io.* ;
public class Download
{
public static void main(String[]args)
{
JFrame jf=new JFrame("XiaoWei DownLoad Software") ;
jf.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0); //退出程序
}
});
jf.setSize(600,400);
jf.setLocation(200,300);
JPanel p=new JPanel() ; //面板默认是FlowLayout布局管理器
final JTextField j=new JTextField("Please Input DownLoad Address In This Area",40) ;
JLabel l=new JLabel("请输入下载地址:") ;
p.add(l);
p.add(j);
jf.getContentPane().add(p,"North");
final JTextArea t1=new JTextArea() ;
jf.getContentPane().add(t1,"Center");
JButton b=new JButton("DownLoad") ;
jf.getContentPane().add(b,"South") ;
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String s=j.getText(); //如果要在内部类中使用局部变量的话 要把局部变量设置为final类型 最终类型
try
{
String line=System.getProperty("line.separator") ;//获得与平台无关的换行
URL url=new URL(s);
URLConnection u=url.openConnection() ; //打开连接 获得URLConnection类的对象
t1.append("目标主机:" +url.getHost());
t1.append(line);
t1.append("主机缺省端口:"+url.getDefaultPort());
t1.append(line);
t1.append("目标类型:"+u.getContentType()) ;
t1.append(line);
t1.append("对象大小"+u.getContentLength());
InputStream in=u.getInputStream() ;//打开 输入流
InputStreamReader r=new InputStreamReader(in); //字节流到字符流转换的桥梁
BufferedReader br=new BufferedReader(r) ; //连接到bufferreader提供读取一行数据的功能
FileOutputStream fos=new FileOutputStream("D:\\1.html") ; //假如我们下载网页文件
String str ; //用String的好处是 读取到多少个字符 就会开辟多少的空间


while ((str=br.readLine())!=null) {
fos.write(str.getBytes()); //因为读取一行文本会忽略换行回车 那么实际读取的文件会小 所以应该加上 我们应该使用与系统无关的回车换行
fos.write(line.getBytes()); //最后写的文件比 实际文件大2个字节 是因为 我们在最后一次多写入了 回车 换行 2个字节
}

fos.close(); //关闭文件流
br.close();
r.close();
in.close(); //使用完流要关闭
}
catch(Exception xe)
{
xe.printStackTrace();
}

}
});
jf.show();

}

}

分享到:
评论

相关推荐

    使用URL和URLConnection(多线程下载)

    本文将详细介绍如何使用Java中的`URL`和`URLConnection`类来实现多线程下载,同时深入解析其中涉及的关键概念和技术细节。 #### 一、URL与URLConnection简介 `URL`(Uniform Resource Locator)是统一资源定位符的...

    java中URL以及URLConnection类的使用

    在Java中进行网络编程时,经常会用到URL和URLConnection这两个类。它们位于***包中,是Java网络编程的核心组件。下面就详细介绍这两个类的使用方法和相关知识点。 ### URL类 URL类是统一资源定位符(Uniform ...

    通过url获取网络位置上的文件流

    总结来说,Java中通过URL获取网络位置上的文件流涉及创建URL对象,建立连接,打开输入流,处理数据并关闭流。这个过程可以封装到工具类中,方便在不同场景下复用。在实际编程中,还需要考虑错误处理和性能优化。

    JAVA通过url获取网页内容

    通过使用 URL 类和 URLConnection 类,Java 程序可以连接到远程服务器,获取指定 URL 的内容。本文将详细介绍如何使用 Java 通过 URL 获取网页内容。 一、使用 URL 类获取网页内容 在 Java 中,URL 类是用于表示...

    java URL URLConnection

    在Java编程语言中,`URL`(统一资源定位符)和`URLConnection`是网络编程中的核心类,用于访问和交互互联网上的资源。这篇博客文章可能深入解析了这两个类的使用和内部工作原理。 `URL`类是Java.net包中的一个关键...

    java中用URLConnection_类post方式提交表单

    java中用URLConnection类post方式提交表单是指在java应用程序中使用java.net.URLConnection类来实现POST方式的表单提交。POST方式是HTTP协议中的一种常见的请求方法,它允许客户端向服务器发送数据。下面是使用...

    java swing url下载器

    1. **获取URL内容**:使用java.net.URL和java.net.URLConnection类来建立与指定URL的连接,并获取输入流。 2. **读取输入流**:通过BufferedReader或InputStreamReader从URL的输入流中读取数据。 3. **写入本地文件*...

    java通过url调用接口

    为了读取接口返回的字符串,我们可以使用`InputStreamReader`和`BufferedReader`从`URLConnection`的输入流读取数据。 ```java BufferedReader in = new BufferedReader(new InputStreamReader(connection....

    url.zip_Java URL实现文件下载

    本教程将详细讲解如何利用Java的URL类来实现文件的下载功能,同时也会提及到ImageIO类在处理图像下载中的应用。 首先,我们需要了解URL的基本构造。一个典型的URL格式如下: ``` 协议://主机名[:端口号]/路径[?...

    java实现下载功能

    通过在网络连接的输入流上读取数据,然后将数据写入本地文件的输出流,实现文件的下载。 4. **多线程**:为了提高用户体验,通常会使用多线程技术实现文件的异步下载。在Java中,可以创建`Thread`对象或者使用`...

    通过java.net.URLConnection发送HTTP请求

    当需要发送请求体时,我们还需要设置允许输入流(setDoOutput(true)): ```java connection.setDoOutput(true); ``` 然后,我们可以使用`OutputStream`写出请求数据: ```java try (OutputStream os = ...

    基于java URL和URLConnection(详解)

    基于Java URL和URLConnection详解 Java URL和URLConnection是Java语言中两个...通过这篇文章,我们可以了解到Java URL和URLConnection类的使用方法和区别,掌握它们的使用方法可以提高Java开发者的开发效率和质量。

    java URL 下载器实例

    总之,Java URL下载器实例是一个实践性强、教育价值高的项目,它结合了Java的基础知识和进阶特性,是学习和掌握网络编程、多线程以及文件操作等技能的优秀案例。通过深入理解并实践这个下载器,开发者可以提升自己的...

    Java下载器 用 Java 编写的URL下载器 workspace

    【Java下载器 用 Java 编写的URL下载器 workspace】是一个项目,主要目的是实现一个基于Java编程语言的URL资源下载工具。...通过分析和运行提供的源代码,开发者可以深入理解如何在Java中实现一个功能完备的URL下载器。

    通过http协议的url下载文件

    ### 通过HTTP协议的URL下载文件(Java实现) 在现代软件开发中,通过网络协议(如HTTP/HTTPS)获取远程资源是一项基本而重要的任务。Java作为一种广泛应用的编程语言,提供了丰富的API来支持这类操作。本文将详细...

    java实现文件下载

    在Java编程中,实现文件下载是一项常见的任务,尤其在Web应用程序中。以下是对给定代码的详细解释,以及关于Java文件下载的相关知识点。 首先,`down`方法接收两个参数:一个`File`对象`f`表示目标下载文件的路径,...

    java根据url获取html源文件

    不过,基础的URL访问和输入流读取是所有网络编程的基础,理解这些概念对于后续的学习至关重要。 总结一下,Java获取HTML源文件的关键步骤包括: 1. 创建`URL`对象表示目标网页。 2. 打开与URL的连接,获取`...

    使用urlconnection下载文件或图片并保存到本地

    // 输入流 InputStream is = con.getInputStream(); // 1K的数据缓冲 byte[] bs = new byte[1024]; // 读取到的数据长度 int len; // 输出的文件流 OutputStream os = new FileOutputStream...

    例10.03 使用URLConnection对象访问远程文件.rar_remote access java_url_远程文件

    - **输入流与输出流**:`URLConnection`提供了`getInputStream()`和`getOutputStream()`方法,分别用于读取服务器响应和向服务器发送数据。 - **缓冲流**:为了提高效率,通常会使用`BufferedReader`或`...

Global site tag (gtag.js) - Google Analytics