[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 }

浙公网安备 33010602011771号