爪哇国新游记之二十九----访问URL获取输入流
代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
public class HttpReader{
private String urlStr;
private String result;
public HttpReader(String urlStr) throws Exception{
if(urlStr.startsWith("http://")){
this.urlStr=urlStr;
}else{
this.urlStr="http://"+urlStr;
}
URL url = new URL(urlStr);// 创建URL对象
InputStream is = url.openStream();// 获取url中的输入流
BufferedReader reader=new BufferedReader(new InputStreamReader(is,"UTF-8"));// 指定编码格式,否则容易乱码
StringBuilder sb=new StringBuilder();
while(reader.ready()){
sb.append(reader.readLine());
}
result=sb.toString();
saveResult();
}
private void saveResult(){
try {
BufferedWriter out = new BufferedWriter(new FileWriter("c://result.html"));
out.write(result);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public String getUrlStr() {
return urlStr;
}
public String getResult() {
return result;
}
public static void main(String[] args) throws Exception{
HttpReader r=new HttpReader("http://www.youdao.com/");
System.out.println(r.getResult());
}
}
输出:
;function sendRequest(a){var c=Math.random(),b=new Image;b.src=a+"&_="+c;senderIndex>=50&&(senderIndex=0);senders[senderIndex++]=b}function requestLog(a,c){sendRequest("/requestlog?type="+a+"&"+c)} function recordSearchTime(){var a=(new Date).getTime();document.cookie="sbt="+a+";path=/;domain="+document.domain;return!0}var scope = {currentTimes : "1407294262857"};, l = s.length; for (; i < l; i++) { r.push({'c': s[i]}); } return r; }; var sug = YD.ui.suggest({ // source:"http://www.youdao.com/tglsuggest2/tglsuggest.s?keyfrom=web.index.suggest&o=" + .ns + "&rn=10&h=17&query=" source:"http://sug.so.360.cn/suggest/word?callback=YD.updateCall&encodein=utf-8&encodeout=utf-8&word=" ,menu: YD.cn("sg-wrap")[0], transData: transData }, "query");})(getNS());</script></body></html>
文件内容:
;function sendRequest(a){var c=Math.random(),b=new Image;b.src=a+"&_="+c;senderIndex>=50&&(senderIndex=0);senders[senderIndex++]=b}function requestLog(a,c){sendRequest("/requestlog?type="+a+"&"+c)} function recordSearchTime(){var a=(new Date).getTime();document.cookie="sbt="+a+";path=/;domain="+document.domain;return!0}var scope = {currentTimes : "1407294262857"};, l = s.length; for (; i < l; i++) { r.push({'c': s[i]}); } return r; }; var sug = YD.ui.suggest({ // source:"http://www.youdao.com/tglsuggest2/tglsuggest.s?keyfrom=web.index.suggest&o=" + .ns + "&rn=10&h=17&query=" source:"http://sug.so.360.cn/suggest/word?callback=YD.updateCall&encodein=utf-8&encodeout=utf-8&word=" ,menu: YD.cn("sg-wrap")[0], transData: transData }, "query");})(getNS());</script></body></html>
爪哇国新游记之二十九----访问URL获取输入流的更多相关文章
- 爪哇国新游记之二十八----从url指定的地址下载文件到本地
package download; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; ...
- 爪哇国新游记之二十二----排序判断重复时间复杂度为2n的位图法
import java.util.ArrayList; import java.util.List; /** * 位图法 * 用于整型数组判重复,得到无重复列表 * */ public class B ...
- 爪哇国新游记之二----用于计算三角形面积的Point类和TAngle类
这次尝试用两个类完成一个面积计算任务: Point类代表平面上的点: public class Point { private float x; private float y; public Poi ...
- 爪哇国新游记之十九----使用Stack检查数字表达式中括号的匹配性
/** * 辅助类 * 用于记载字符和位置 * */ class CharPos{ char c; int pos; public CharPos(char c,int pos){ this.c=c; ...
- 爪哇国新游记之三十四----Dom4j的XPath操作
Dom4j是Java访问XML的利器之一,另一个是JDom.记得当年因为粗掌握点JDomAPI但项目要求使用Dom4j还闹一阵情绪,现在看来真是没必要,只花一些时间成本就进去一个新世界绝对是值得做的一 ...
- 爪哇国新游记之十四----初试JDBC
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- 爪哇国新游记之十三----XML文件读写
/** * XML读写示例 * @author hx * */ public class XmlReaderWriter{ /** * 读取一个XML文件,返回一个雇员链表 * @param file ...
- 爪哇国新游记之七----使用ArrayList统计水果出现次数
之前学习制作了DArray,了解ArrayList就容易了. /** * 用于存储水果名及数量 * */ public class Fruit{ private String name; public ...
- 爪哇国新游记之一----第一个类Cube
将这个类作为Java学习的第一个类,简单易懂易上手. /** * 正方体类 */ public class Cube { private int length;// 正方体边长 private sta ...
随机推荐
- 记一次学习SpringBoot RequestBodyAdvice ResponseBodyAdvice RestControllerAdvice
今天老板给我了一套代码,然后我就拿过去研究,代码的风格是SSM + Shiro + nginx + SpringBoot的MVC架构风格,springboot,是当下很火的一个框架,配合springc ...
- go语言中的json
结构体类型转化为json格式 package main import ( "encoding/json" "fmt" ) //如果要转化成json格式,那么成员 ...
- 解决Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the proxy settings in Gradle.
有时候打开AndroidStudio项目,没问题啊,昨天还打开没事的,今天打不开了或者你同步了一下项目,报错了.很无辜有没有.有时候多开机几次,多关几次AS,又莫名好了. 尝试过很多方法无效,这个文章 ...
- windows上的命令telnet
telnet可以测试端口号是否可用,比如: telnet ip:port 或者 telnet www.baidu.com PS:win7环境下,默认没有安装telnet客户端,你可以去“控制面板”-- ...
- SPOJ NETADMIN - Smart Network Administrator(二分)(网络流)
NETADMIN - Smart Network Administrator #max-flow The citizens of a small village are tired of being ...
- 4、Django实战第4天:xadmin快速搭建后台管理系统
Django默认为我们提供了后台管理系统admin, urls.py中配置的第一条就是访问后台管理系统admin的 urlpatterns = [ url(r'^admin/', admin.site ...
- 【后缀数组】poj3581 Sequence
考虑第一次切割,必然切割的是翻转后字典序最小的前缀,伪证: 若切割位置更靠前:则会导致第一个数翻转后更靠前,字典序必然更大. 若切割位置更靠后,则显然也会导致字典序更大. ↑,sa即可 对于第二次切割 ...
- 8.6(java学习笔记)类加载过程及类加载器
一.类加载 1.加载 将class字节码加载到内存中,同时在方法区形成改类运行时数据结构. 同时在堆中产生一个Class对象,反射就是获取这个对象并对其进行操作. 2.链接 2.1验证:验证加载的类信 ...
- iOS 灵活,简易,扩展性强的气泡提示框LFBubbleView(含源码)
一.效果图 二.使用方法 使用简单,4行代码集成. _bubbleView = [[LFBubbleView alloc] initWithFrame:CGRectMake(, , , )]; _bu ...
- PHP将字符串首字母大小写转换
每个单词的首字母转换为大写:ucwords() <?php $foo = 'hello world!'; $foo = ucwords($foo); // Hello World! $bar = ...