加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java _io_转换流输入,读取网页源代码和键盘输入

发布时间:2020-12-15 05:33:11 所属栏目:Java 来源:网络整理
导读:InputStreamReader和 OutputStreamWriter new InputStreamReader(字节流,"UTF-8") //指定模式 将字节流转换为字符流,方便处理,比如能使用BufferedReader处理流 可以处理字符集:InputStreamReader isr=new InputStreamReader(字节流,"UTF-8"); 网络流: new
InputStreamReader和 OutputStreamWriter

new InputStreamReader(字节流,"UTF-8") //指定模式

将字节流转换为字符流,方便处理,比如能使用BufferedReader处理流
可以处理字符集:InputStreamReader isr=new InputStreamReader(字节流,"UTF-8");
网络流:new URL("http://www.baidu.com").openStream(),这是一个字节流
用装饰器装饰转换流转换成的字符流:BufferedReader reader=new BufferedReader(new InputStreamReader(new URL("http://www.baidu.com").openStream(),"UTF-8"))

用转换流来读取键盘输入输出的字节流:

try(BufferedReader isr=new BufferedReader( new 
        InputStreamReader(System.in));
    BufferedWriter osw=new BufferedWriter(new OutputStreamWriter(System.out));){
    //键盘循环读取,exit退出
    String s=" ";
    while(!s.equals("exit"))
    {
            s=isr.readLine(); //按行读取
         osw.write(s);   //写出
         osw.newLine(); 
         osw.flush();   //强制刷新,因为数据太小无法输出,要满足一定kb才会自动输出
    }

    }
    catch(IOException e)
    {
        System.out.println("操作异常");

    }

操作网络流,读取百度源码:

使用装饰器:

//使用转换流,读取中文不会乱码
    try(BufferedReader reader=new BufferedReader(new InputStreamReader(new URL("http://www.baidu.com").openStream(),"UTF-8"));
    ){                                                                                                  //网页的字符集是utf-8

    //读取
        String s;
        while((s=reader.readLine())!=null)
        {
            System.out.println(s);
        }

    }
    catch(IOException e)
    {
        System.out.println("操作异常");

    }
}

不使用装饰器:

try(InputStreamReader is=new InputStreamReader(new URL("http://www.baidu.com").openStream());
    ){

    //读取
        int len;
        while((len=is.read())!=-1)
        {
            System.out.print((char)len);
        }

    }
    catch(IOException e)
    {
        System.out.println("操作异常");

    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读