Java I/O系统之转换流

来源:互联网 发布:淘宝网高档雪纺练功服 编辑:程序博客网 时间:2024/05/28 16:06

1.转换流介绍

1)        InputStreamReader和OutputStreamWriter用于字节数据到字符数据之间转换

2)        InputStreamReader需要和InputStream“套接”

3)        OutputStreamWriter需要和OutputStream”套接”

4)        转换流在构造时可以指定其编码集合,例如:

[java] view plain copy
print?
  1. InputStream isr = new InputStreamReader(System.in,”ISO8859_1”);  

2.转换流例子一

[java] view plain copy
print?
  1. package com.owen.io;  
  2.   
  3. import java.io.FileOutputStream;  
  4. import java.io.IOException;  
  5. import java.io.OutputStreamWriter;  
  6.   
  7. /** 
  8.  * 使用OutputStreamWriter转换流实现文件写入 
  9.  *  
  10.  * @author OwenWilliam 2016-7-19 
  11.  * @since 
  12.  * @version v1.0.0 
  13.  * 
  14.  */  
  15. public class TestTransForm1  
  16. {  
  17.   
  18.     @SuppressWarnings("resource")  
  19.     public static void main(String[] args)  
  20.     {  
  21.         try  
  22.         {  
  23.             // 写入文件的路径  
  24.             OutputStreamWriter osw = new OutputStreamWriter(  
  25.                     new FileOutputStream(  
  26.                             "E:/workspace/Java/IO/src/com/owen/io/char.txt"));  
  27.             osw.write("this application will use Stream!");  
  28.             System.out.println(osw.getEncoding());  
  29.             // 写好了记得关闭  
  30.             osw.close();  
  31.             // 后面true指,接着上面写的内容后面继续写,如果去掉,那么就会重新写入(擦去原有的)  
  32.             // 后面ISO8859_1是规定的写入编码  
  33.             osw = new OutputStreamWriter(new FileOutputStream(  
  34.                     "E:/workspace/Java/IO/src/com/owen/io/char.txt"true),  
  35.                     "ISO8859_1");  
  36.             osw.write("it will add in the end text!");  
  37.             System.out.println(osw.getEncoding());  
  38.             osw.close();  
  39.         } catch (IOException e)  
  40.         {  
  41.             e.printStackTrace();  
  42.         }  
  43.   
  44.     }  
  45.   
  46. }  

3.转换流例子二

[java] view plain copy
print?
  1. package com.owen.io;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.IOException;  
  5. import java.io.InputStreamReader;  
  6.   
  7. /** 
  8.  * 使用InputStreamReader实现读取,同时用BufferedReader实现一行一行读取 这里是用到同步的线程,即阻塞。 
  9.  *  
  10.  * @author OwenWilliam 2016-7-19 
  11.  * @since 
  12.  * @version v1.0.0 
  13.  * 
  14.  */  
  15. public class TestTransForm2  
  16. {  
  17.   
  18.     public static void main(String[] args)  
  19.     {  
  20.         // System.in其实是就相当于流“管道”的字节流,然后外面包裹InputStreamReader,实现字节读取  
  21.         InputStreamReader isr = new InputStreamReader(System.in);  
  22.         // 使用BufferedReader,可以实现一行一行的读取  
  23.         BufferedReader br = new BufferedReader(isr);  
  24.         String s = null;  
  25.         try  
  26.         {  
  27.             // 读取一行  
  28.             s = br.readLine();  
  29.             while (s != null)  
  30.             {  
  31.                 // 退出  
  32.                 if (s.equalsIgnoreCase("exit"))  
  33.                     break;  
  34.                 System.out.println(s.toUpperCase());  
  35.                 s = br.readLine();  
  36.             }  
  37.             br.close();  
  38.         } catch (IOException e)  
  39.         {  
  40.             // TODO Auto-generated catch block  
  41.             e.printStackTrace();  
  42.         }  
  43.     }  
  44.   
  45. }  




原创粉丝点击