java.net.Url 类可以用来获取网页资源,是一个很方便的类,我这里像大家展示一下如何通过 url 类获取网络资源
public static void main(String[] args) throws IOException {
// 实例化一个URL 类
URL url = new URL("http://www.baidu.com");
// 获取连接
URLConnection urlConnection = url.openConnection();
// 设置请求头
urlConnection.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
// 获取输入流,网络文件都是以流的形式进行传输的
InputStream inputStream = urlConnection.getInputStream();
// 使用 增强读取 , 可以设置 解码字符集
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
// 使用 增强写出
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("baidu.html"),"UTF-8"));
String msg = null;
while( (msg=br.readLine()) !=null ){
// 写出
bw.write(msg);
}
bw.close();
br.close();
}
如果读取文件的话就不能用 Reader类了,就得用 OutputStream 类了
public static void main(String[] args) throws IOException {
// 实例化一个URL 类
URL url = new URL("http://e.hiphotos.baidu.com/image/h%3D300/sign=3b44ffc10746f21fd6345853c6256b31/8c1001e93901213f5480ffe659e736d12f2e955d.jpg");
// 获取连接
HttpsURLConnection urlConnection = (javax.net.ssl.HttpsURLConnection)url.openConnection();
// 设置请求头
urlConnection.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
// 获取输入流,网络文件都是以流的形式进行传输的
InputStream inputStream = urlConnection.getInputStream();
//
BufferedInputStream bis = new BufferedInputStream(inputStream);
//
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream( "xxxxx.jpg" ));
// 设置缓冲
byte [] flush = new byte[2048];
// 记录读取长度
int len = 0;
while( (len = bis.read(flush) ) != -1 ){
bos.write(flush, 0, len);
}
bos.flush();
bos.close();
bis.close();
}