代码:

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获取输入流的更多相关文章

  1. 爪哇国新游记之二十八----从url指定的地址下载文件到本地

    package download; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; ...

  2. 爪哇国新游记之二十二----排序判断重复时间复杂度为2n的位图法

    import java.util.ArrayList; import java.util.List; /** * 位图法 * 用于整型数组判重复,得到无重复列表 * */ public class B ...

  3. 爪哇国新游记之二----用于计算三角形面积的Point类和TAngle类

    这次尝试用两个类完成一个面积计算任务: Point类代表平面上的点: public class Point { private float x; private float y; public Poi ...

  4. 爪哇国新游记之十九----使用Stack检查数字表达式中括号的匹配性

    /** * 辅助类 * 用于记载字符和位置 * */ class CharPos{ char c; int pos; public CharPos(char c,int pos){ this.c=c; ...

  5. 爪哇国新游记之三十四----Dom4j的XPath操作

    Dom4j是Java访问XML的利器之一,另一个是JDom.记得当年因为粗掌握点JDomAPI但项目要求使用Dom4j还闹一阵情绪,现在看来真是没必要,只花一些时间成本就进去一个新世界绝对是值得做的一 ...

  6. 爪哇国新游记之十四----初试JDBC

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  7. 爪哇国新游记之十三----XML文件读写

    /** * XML读写示例 * @author hx * */ public class XmlReaderWriter{ /** * 读取一个XML文件,返回一个雇员链表 * @param file ...

  8. 爪哇国新游记之七----使用ArrayList统计水果出现次数

    之前学习制作了DArray,了解ArrayList就容易了. /** * 用于存储水果名及数量 * */ public class Fruit{ private String name; public ...

  9. 爪哇国新游记之一----第一个类Cube

    将这个类作为Java学习的第一个类,简单易懂易上手. /** * 正方体类 */ public class Cube { private int length;// 正方体边长 private sta ...

随机推荐

  1. canvas的基础使用。

    目录: 创建canvas. 绘制直线.多边形和七巧板. 绘制弧和圆. (有些图过于宽,被挤压了.可以去相册[canvas用到的图.]看原图.) 创建canvas. HTML5的新标签<canva ...

  2. 在另一个文本框显示input file选择的文件名字

    javascript 获取文件域 (type=file) 的完整路径一直是很麻烦的问题,问题主要出在一些浏览器基于安全性考虑而不能正常获取到文件域中选中图片的决对路径,尤其一些基于webkit的浏览器 ...

  3. 工作管理 (job control)

    这个工作管理 (job control) 是用在 bash 环境下的,也就是说:『当我们登入系统取得创建的 bash shell 进程之后,在该bush下同时进行多个工作的行为管理 』. 而所有创建的 ...

  4. AC日记——Red and Blue Balls codeforces 399b

    399B - Red and Blue Balls 思路: 惊讶的发现,所有的蓝球的消除都是独立的: 对于在栈中深度为i的蓝球消除需要2^i次操作: 代码: #include <cstdio&g ...

  5. (2)三剑客之grep

    1)grep和egrep定义grep:在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行egrep:扩展的egrep,支持更多的正则表达式元字符2)命令格式语法:grep [选项] patt ...

  6. HDU 1180 诡异的楼梯【BFS/楼梯随时间变化】

    诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submis ...

  7. java 时间格式化中的模式字母

    java日期格式化中的模式字母有特定的意义,由于没有注意,今天在做工程的时候导致出现了奇怪的日期: 错误写法如下: 然而得到了错误的结果: 正确写法如下: 这样就得到了正确的结果 mm指的是分钟,MM ...

  8. 【分块】【树状数组】bzoj3744 Gty的妹子序列

    离散化,分块. 预处理出:ans[i][j] 第i块到第j块的逆序对数. f[i][j] 第1~i块中大于j的数的个数. g[i][j] 第1~j块中小于j的数的个数. 每次询问时对于整块部分可以O( ...

  9. 8.2(java学习笔记)反射

    一.基础知识 对象是表示或封装一些数据,一个类被加载后JVM会创建一个对应该类的Class对象, 类的整个结构信息会被放在对应的对象中,通过这个对象我们可以获取改类的全部信息, 而这些操作称为反射. ...

  10. a + b ——C语言初学者百题大战之四

    #include <stdio.h> int main() { int a,b; scanf("%d %d",&a,&b); printf(" ...