IO流之转换流

  

  InputStreamReader 继承于Reader,是字节流通向字符流的桥梁,可以把字节流按照指定编码 解码 成字符流。

 

 

 

  OutputStreamWriter 继承于Writer,是字符流通向字节流的桥梁,可以把字符流按照指定的编码 编码 成字节流。

 

转换流的工作原理:

  

 

 

 

      写入UTF-8文件:

 1 public static void main(String[] args) throws IOException {
 2         File file = new File("d:\\sxt2019\\b.txt");
 3         
 4         String string="i like you too";
 5         
 6         //1.创建通道
 7         FileOutputStream fileOutputStream=new FileOutputStream(file);
 8         
 9         //2.创建转换流
10         OutputStreamWriter writer=new OutputStreamWriter(fileOutputStream,"UTF-8");
11         
12         //3.写入数据
13         writer.write(string);
14         
15         //4.刷新缓冲区
16         writer.flush();
17         //5.关闭通道
18         writer.close();
19         //6.关闭转换流
20         fileOutputStream.close();
21 
22     }

 

        读取UTF-8到程序内存中:

public static void main(String[] args) throws IOException {
        File file = new File("d:\\sxt2019\\b.txt");

        
        FileInputStream fileInputStream=new FileInputStream(file);
        
        InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream, "UTF-8");
            
        char[] cbuf=new char[2];
        int len;
        
        StringBuilder sb=new StringBuilder();
        while((len=inputStreamReader.read(cbuf))!=-1){
            sb.append(cbuf, 0, len);
        }
        System.out.println(sb.toString());
    }

 

posted @ 2019-05-07 08:28  luojack  阅读(1002)  评论(0编辑  收藏  举报