package Url;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.junit.Test;
/**
* URL
* 类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。
* 抓取文件:以下载一张图片为例
* 1、创建URL对象 指定文件的URL地址(图片的URL地址)
* 2、获取远程连接的对象
* 3、设置获取方式,一般用到GET、POST方式
* 4、获取HTTP响应的状态码 200表示请求成功
* 5、字节输入流 读取文件
* 6、字节输出流 把读取的文件存入本地
* @author hw
*
*/
public class Url1 {
@Test
public void dodo() throws IOException{
//创建URL对象 指向指定的url 域名
URL url=new URL("http://img04.tooopen.com/images/20131202/sy_49706261893.jpg");
//返回URL所引用远程对象的连接
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
//设置URL请求方式 GET方式
conn.setRequestMethod("GET");
//从HTTP响应消息获取状态码
int code=conn.getResponseCode();
//如果状态码为200表示请求成功
if(code==200){
//获取输入流
InputStream in=conn.getInputStream();
BufferedInputStream bis=new BufferedInputStream(in);
//获取输出流 将读取的数据写入指定的路径下的文件里
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("/home/huangwei/aaa/download.jpg",true));
//新建byte数组 长度设置位1024
byte[] by=new byte[1024];
int len=0;
//while循环 这里的len表示数组by的有效长度 同时也可以判断数据是否读取完毕
while((len=bis.read(by))!=-1){
bos.write(by,0,len);
//刷新
bos.flush();
}
//关闭资源
bos.close();
bis.close();
}
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.junit.Test;
/**
* URL
* 类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。
* 抓取文件:以下载一张图片为例
* 1、创建URL对象 指定文件的URL地址(图片的URL地址)
* 2、获取远程连接的对象
* 3、设置获取方式,一般用到GET、POST方式
* 4、获取HTTP响应的状态码 200表示请求成功
* 5、字节输入流 读取文件
* 6、字节输出流 把读取的文件存入本地
* @author hw
*
*/
public class Url1 {
@Test
public void dodo() throws IOException{
//创建URL对象 指向指定的url 域名
URL url=new URL("http://img04.tooopen.com/images/20131202/sy_49706261893.jpg");
//返回URL所引用远程对象的连接
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
//设置URL请求方式 GET方式
conn.setRequestMethod("GET");
//从HTTP响应消息获取状态码
int code=conn.getResponseCode();
//如果状态码为200表示请求成功
if(code==200){
//获取输入流
InputStream in=conn.getInputStream();
BufferedInputStream bis=new BufferedInputStream(in);
//获取输出流 将读取的数据写入指定的路径下的文件里
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("/home/huangwei/aaa/download.jpg",true));
//新建byte数组 长度设置位1024
byte[] by=new byte[1024];
int len=0;
//while循环 这里的len表示数组by的有效长度 同时也可以判断数据是否读取完毕
while((len=bis.read(by))!=-1){
bos.write(by,0,len);
//刷新
bos.flush();
}
//关闭资源
bos.close();
bis.close();
}
}
}
该博客展示了如何使用Java的URL和HttpURLConnection类来下载网络上的文件。通过创建URL对象,设置请求方法,检查响应状态码,以及使用输入输出流进行文件读写,实现了从指定URL下载文件并保存到本地的功能。


被折叠的 条评论
为什么被折叠?



