java常用类解析三:IO系统装饰类

java IO系统采用装饰器模式,用一些装饰类来装饰输入输出来,提供更强大的IO操作

FilterInputStream(FilterOutputStream)继承自InputStream(Outputstream)

常用装饰类(都继承自FilterInputStream)               功能

DataInputStream(DataOutputStream)                 读写基本类型即UTF

BufferedInputStream(BufferedOutputStream)      使用缓冲区

PrintStream继承自Outputstream,用于格式化输出到文本或控制台等

 

 

示例:

  1. <span style="font-size:16px;">package test;  
  2.   
  3. import java.io.BufferedInputStream;  
  4. import java.io.BufferedOutputStream;  
  5. import java.io.DataInputStream;  
  6. import java.io.DataOutputStream;  
  7. import java.io.FileInputStream;  
  8. import java.io.FileNotFoundException;  
  9. import java.io.FileOutputStream;  
  10. import java.io.IOException;  
  11.   
  12. /* 
  13.  * DataInputStream继承自FilterInputStream(FilterInputStream继承自InputStream) 
  14.  * 用来装饰InputStream,提供可移植方式从流读取基本数据类型 
  15.  * DataOutputStream继承自FilterOutputStream(FilterOutputStream继承自OutputStream) 
  16.  * 用来装饰OutputStream,提供可移植方式向流写入基本数据类型 
  17.  * DataInputStream/DataOutputStream可以实现数据的存储与恢复 
  18.  */  
  19. public class DataInputStreamDemo {  
  20.     public static void main(String[] args) {  
  21.         DataOutputStream dataOutStream = null;  
  22.         try {  
  23.             dataOutStream = new DataOutputStream(new BufferedOutputStream(  
  24.                     new FileOutputStream("file/aa.data")));  
  25.         } catch (FileNotFoundException e) {  
  26.             // TODO Auto-generated catch block  
  27.             e.printStackTrace();  
  28.         }  
  29.         try {// 写入文件  
  30.             dataOutStream.writeChar('a');  
  31.             dataOutStream.writeInt(3);  
  32.             dataOutStream.writeDouble(5.5);  
  33.             dataOutStream.writeFloat(3.2f);  
  34.             dataOutStream.writeUTF("nihaoma");  
  35.             dataOutStream.close();  
  36.         } catch (IOException e) {  
  37.             e.printStackTrace();  
  38.         }  
  39.           
  40.         DataInputStream dataInputStream = null;  
  41.         try {  
  42.             dataInputStream = new DataInputStream(new BufferedInputStream(  
  43.                     new FileInputStream("file/aa.data")));  
  44.         } catch (FileNotFoundException e) {  
  45.             e.printStackTrace();  
  46.         }  
  47.         try {// 读取文件  
  48.             System.out.println(dataInputStream.readChar());  
  49.             System.out.println(dataInputStream.readInt());  
  50.             System.out.println(dataInputStream.readDouble());  
  51.             System.out.println(dataInputStream.readFloat());  
  52.             System.out.println(dataInputStream.readUTF());  
  53.             dataInputStream.close();  
  54.         } catch (IOException e) {  
  55.             e.printStackTrace();  
  56.         }  
  57.     }  
  58. }  
  59. </span>  


 

  1. <span style="font-size:16px;">package test;  
  2.   
  3. import java.io.FileNotFoundException;  
  4. import java.io.PrintStream;  
  5.   
  6. /* 
  7.  * 继承自FilterOutputStream,其中DataOutputStream处理数据的存储,PrintStream处理显示 
  8.  * 用于格式化打印 
  9.  */  
  10. public class PrintStreamDemo {  
  11.     public static void main(String[] args) throws FileNotFoundException {  
  12.         // 把数据可视化格式显示到文本文件中  
  13.         PrintStream printStream = new PrintStream("file/test2.txt");  
  14.         printStream.println('a');  
  15.         printStream.println(2);  
  16.         printStream.println(3.2);  
  17.         printStream.println("liuhaifang");  
  18.         printStream.println("刘海房");  
  19.         // 可视化显示到控制台  
  20.         printStream = new PrintStream(System.out);  
  21.         printStream.println("hello  java");  
  22.     }  
  23. }  
  24. </span>  
posted @ 2012-01-19 15:58  王爵的技术博客  阅读(1048)  评论(0)    收藏  举报

我的技术博客:https://biezhi.me

Github:https://github.com/biezhi 

微博:http://weibo.com/u/5238733773

Twitter:https://twitter.com/biezhii