该例中首先生成一个 URL 对象 lrh,指向 RUI 豪小栈,然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流,这是一个字节流,在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流,并通过这个字符流对象读取该 URL 的 html 内容,进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作,前提是先通过 connect() 方法建立连接,然后再去获取响应头信息或响应内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | package cn.lruihao.base; import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; public class URLReader { public static void main(String[] args) throws Exception{ try { URL lrh=new URL("https://www.lruihao.cn"); File file=new File("C:\\Users\\李瑞豪、\Desktop\\lrh.html"); FileWriter fout=new FileWriter(file); BufferedReader in =new BufferedReader(new InputStreamReader(lrh.openStream()));//字节流转化成字符流,再构建缓冲字符流 String inputLine; while((inputLine=in.readLine())!=null) { System.out.println(inputLine); fout.write(inputLine); } in.close(); fout.close(); //获取响应 header 信息 URLConnection conn=lrh.openConnection(); conn.connect(); System.out.println("获取到的响应长度:"+conn.getContentLength()); System.out.println("响应类型:"+conn.getContentType()); //用 BufferedReader 读取 URL 的响应 in =new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; String result=null; while((line=in.readLine())!=null) { result+=line; } System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } } |
---|
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有