代码:

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. [ Python - 12 ] 线程的信号量、标志位及队列

    线程的信号量 线程的信号量是同时允许一定数量的线程更改数据,主要作用在于限制线程的并发. #!_*_coding:utf-8_*_ # Author: hkey import threading, t ...

  2. ECharts问题--散点图中对散点添加点击事件

    1. 我们这次就没有先讲解怎么使用散点图了,这个跟之前的一些图还是很类似的,不会的可以去官网上面查看 API 使用.我们这次讲解的是为散点图中的散点添加点击事件,然后在图表之外的一个 div 里面显示 ...

  3. ATL CLR MFC Win32 常规 的区别

    ATL用于编写COM程序,CLR是.NET的公共语言运行库,MFC是指MFC类库,MFC程序是用这些类库做出的程序,WIN32常规就是不用 MFC,使用API函数编的程序. MFC.ATL和CLR是V ...

  4. Linux删除重复行

    本文转自http://blog.csdn.net/ithomer/article/details/6926325 文本处理时,经常要删除重复行,下面是三种方法 第一,用sort+uniq,注意,单纯u ...

  5. codeforces 739D

    这题码量好大…… 首先思考如何构造,不难找到一下两个条件 1. 在长度为i的环上的点一定是i的倍数个 2. 到达长度i的环的点集距离一定是连续的 第一个条件是很好搞的,关键是第二个条件. 因为存在着x ...

  6. python socket 连续send,出现粘包问题

    使用网上socket代码实现ssh功能,如下: server.py #服务端Linux系统下:处理命令并返回import socketimport os#声明类型,生成socket链接对象server ...

  7. 修改hadoop的jar包运行时候分配的jvm内存

    在hadoop-env.sh中修改参数添加 export HADOOP_HEAPSIZE="4096" 设置分配的最大jvm内存为4096,一般用于jar包里面除了执行map和re ...

  8. Centos7 下安装mysql

    #prepare for install yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm   ...

  9. luogu P1009 阶乘之和

    题目描述 用高精度计算出S=1!+2!+3!+…+n!(n≤50) 其中“!”表示阶乘,例如:5!=5*4*3*2*1. 输入输出格式 输入格式: 一个正整数N. 输出格式: 一个正整数S,表示计算结 ...

  10. 【博弈论】【SG函数】bzoj1457 棋盘游戏

    一开始就必胜的特判一下. #include<cstdio> #include<cstring> #include<set> #include<algorith ...