步骤:
1.建立URL对象
2.通过openStream()方法获得输入流
3.按照输入流的一些操作进行读取。
范例1:
//功能:下载百度页面流
package day0803;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class Test_URL {
public static void main(String[] args) {
//百度
try {
URL url = new URL("http://www.baidu.com");//MalformedURLException地址不存在的异常
InputStream is = url.openStream();//1.利用openStream方法获得流,2、有IOException异常
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = br.readLine();
while(line!=null){
System.out.println(line);
line = br.readLine();
}
br.close();
is.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
范例二:
/*
要求:将已知url的图片复制出来。(即下载图片:input流;上传:output流)
解释:由于图片是二进制字节,所以这是不用BufferedReader,而是用字节流的方式。
*/
方法一:直接获得输入流
方法二:connection:
URLConnection uc = urlpic.openConnection();
InputStream ispic = uc.getInputStream();
//main方法中:
try {
URL urlpic = new URL("http://img03.sogoucdn.com/app/a/100520076/1034da5d83b07ac8efa112255506645c");
File file = new File("d://b.jpg");
//判断文件是否存在,不存在创建
if(!file.exists()){
file.createNewFile();
}
OutputStream ospic = new FileOutputStream(file); //注:建FileOutputStream
InputStream ispic = urlpic.openStream(); //异常
byte[] arr = new byte[1024];
int num = ispic.read(arr);
while(num!=-1){
ospic.write(arr, 0, num);
num = ispic.read(arr);
}
ospic.flush();//写入,不要忘了flush
ospic.close();
ispic.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}