[19/04/02-星期二] IO技术_字符流分类总结(含字符转换流InputStreamReader/ OutputStreamWriter,实现字节转字符)

一、概念

                         ------->1、BufferedReader/BufferedWriter 【参考19.03.31文章】


*Reader/Writer-------->2、InputStreamReader/ OutputStreamWriter(转换流,实现字节转字符)---》2-1:FileReader和FileWriter(文件字符类【19.03.31文章】)

 【代码示例】

 1 /**字符流相关
 2  * 2、InputStreamReader/ OutputStreamWriter(转换流,实现字节转字符)》》2-1:FileReader和FileWriter(用过,文件字符类)
 3  * 要点:
 4  * 1)、以字符流的形式操作字节流(仅限纯文本)
 5  * 2)、指定字符集
 6  * 
 7  * 
 8  */
 9 package cn.sxt.test;
10 
11 import java.io.BufferedReader;
12 import java.io.BufferedWriter;
13 import java.io.FileOutputStream;
14 import java.io.IOException;
15 import java.io.InputStreamReader;
16 import java.io.OutputStreamWriter;
17 import java.io.Reader;
18 import java.net.URI;
19 import java.net.URL;
20 
21 
22 public class Test_0402_InputStreamReader {//System.in 字节输入流 , System.out字节输出流
23     public static void main(String[] args) throws IOException {
24         /*InputStreamReader isr=new InputStreamReader(System.in);//控制台输入,通过这步字节已经转成字符了
25         BufferedReader bReader=new BufferedReader(isr);//加个缓冲字符流
26 
27         OutputStreamWriter osr=new OutputStreamWriter(System.out);//控制台输出
28         BufferedWriter bWriter=new BufferedWriter(osr);
29 
30         //基本操作,循环获取键盘的输入(输入"exit"退出循环),输出此内容
31         String msg="";
32         while (!msg.equals("exit")) {
33             msg=bReader.readLine();//逐行循环读取
34             bWriter.write(msg);//逐行循环写出
35             bWriter.newLine();//换行
36             bWriter.flush();//强制刷新,即使缓冲区没满,也可以让缓冲区的内容强制出去。如果没这句只有缓冲区满才会输出
37         }
38         bReader.close();
39         bWriter.close();    */
40 
41         //抓取baidu首页网页的源码
42         URL url=new URL("http://www.baidu.com"); //url.openStream() 获得一个网络字节流
43         InputStreamReader isr=new InputStreamReader(url.openStream(),"UTF-8");//通过这步字节已经转成字符了
44         BufferedReader bReader=new BufferedReader(isr);
45         
46         FileOutputStream file =new FileOutputStream("baidu.html");
47         OutputStreamWriter osr=new OutputStreamWriter(file,"UTF-8");//把读取到的保存在baidu.html文件中去
48         BufferedWriter bWriter=new BufferedWriter(osr);
49         
50         String msg=null;
51         while ((msg=bReader.readLine())!=null) {
52             //System.out.println(msg);
53             bWriter.write(msg);
54             bWriter.newLine();    
55         }
56         bWriter.flush();
57         
58         
59         bReader.close();
60         bWriter.close();
61     }
62 
63 }

 

posted @ 2019-04-01 19:24  ID长安忆  阅读(197)  评论(0)    收藏  举报