博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过Url网络编程实现下载
阅读量:5067 次
发布时间:2019-06-12

本文共 1733 字,大约阅读时间需要 5 分钟。

import java.io.File;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

//URL:统一资源定位符,一个URL的一个对象对应互联网上的一个资源,

//通过URL的对象调用相应方法,将此资源读取(“下载”)
public class TestUrl {
public static void main(String[] args) {
//穿件一个URL对象

try {

URL url = new URL("http://192.168.2.106:8080/exam/helloworld.txt");//File file = new File("文件路径");
//读取的方法
/**
* getProtocol 获取URL的协议
* getHost 获取URL主机名
* getPort 获取URL端口号
* getPath 获取URL文件路径
* getFile 获取URL文件名
* getRef 获取URL在文件中的相对位置
* getQuery 获取URL查询名
*/
System.out.println("获取URL的协议==>"+url.getProtocol());
System.out.println("获取URL主机名==>"+url.getHost());
System.out.println("获取URL端口号==>"+url.getPort());
System.out.println("获取URL文件路径==>"+url.getPath());
System.out.println("获取URL文件名==>"+url.getFile());
System.out.println("获取URL在文件中的相对位置==>"+url.getRef());
System.out.println("获取URL查询名==>"+url.getQuery());
//如何精服务器端的资源读取出来openStream,该方法只负责度如数据
InputStream is = url.openStream();
byte[] b = new byte[20];
int len;
//输出到控制台
while((len = is.read(b)) != -1){
String str = new String(b,0,len);
System.out.println(str);
}
//如果有数据输入,又有输出,则考虑用URLConnection
//保存到本地文件
URLConnection urlConn = url.openConnection();
InputStream is1 = urlConn.getInputStream();
FileOutputStream fos = new FileOutputStream(new File("abc.txt"));
byte[] b1 = new byte[20];
int len1;
while((len1 = is1.read(b1)) != -1){
fos.write(b1, 0, len1);
}
fos.close();
is1.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

转载于:https://www.cnblogs.com/lixiuming521125/p/6428534.html

你可能感兴趣的文章
对象的赋值和复制(转)
查看>>
C#执行cmd [转载]
查看>>
auth复习和BBS项目的登录(1)
查看>>
[BZOJ4027][HEOI2015]兔子与樱花(贪心)
查看>>
HDU 2032 杨辉三角
查看>>
设计模式C++实现——组合模式
查看>>
RSA 加解密算法
查看>>
【bfs基础】①
查看>>
Andriod 学习笔记 layout布局
查看>>
VS快捷键
查看>>
Mapreduce实例-分组排重(group by distinct)
查看>>
Vue 2.x + Webpack 4.x的那些事---萌新必备
查看>>
CentOS7手动修改系统时间
查看>>
sql 临时空间 连接 分组
查看>>
C++ 字符串
查看>>
C++求数组子数组和的最大值并将该子数组和最大值打印出来
查看>>
Oracle创建 表空间 用户 给用户授权命令
查看>>
SpringMVC Controller的返回类型
查看>>
MySQL临时表
查看>>
重庆社保局密码重置
查看>>