读书人

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

发布时间: 2012-10-07 17:28:51 作者: rapoo

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

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

FilterInputStream(FilterOutputStream)继承自InputStream(Outputstream)

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

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

BufferedInputStream(BufferedOutputStream)????? 使用缓冲区

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

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

?

示例:

import java.io.BufferedInputStream;  import java.io.BufferedOutputStream;  import java.io.DataInputStream;  import java.io.DataOutputStream;  import java.io.FileInputStream;  import java.io.FileNotFoundException;  import java.io.FileOutputStream;  import java.io.IOException;    /*  * DataInputStream继承自FilterInputStream(FilterInputStream继承自InputStream)  * 用来装饰InputStream,提供可移植方式从流读取基本数据类型  * DataOutputStream继承自FilterOutputStream(FilterOutputStream继承自OutputStream)  * 用来装饰OutputStream,提供可移植方式向流写入基本数据类型  * DataInputStream/DataOutputStream可以实现数据的存储与恢复  */  public class DataInputStreamDemo {      public static void main(String[] args) {          DataOutputStream dataOutStream = null;          try {              dataOutStream = new DataOutputStream(new BufferedOutputStream(                      new FileOutputStream("file/aa.data")));          } catch (FileNotFoundException e) {              // TODO Auto-generated catch block               e.printStackTrace();          }          try {// 写入文件               dataOutStream.writeChar('a');              dataOutStream.writeInt(3);              dataOutStream.writeDouble(5.5);              dataOutStream.writeFloat(3.2f);              dataOutStream.writeUTF("nihaoma");              dataOutStream.close();          } catch (IOException e) {              e.printStackTrace();          }                    DataInputStream dataInputStream = null;          try {              dataInputStream = new DataInputStream(new BufferedInputStream(                      new FileInputStream("file/aa.data")));          } catch (FileNotFoundException e) {              e.printStackTrace();          }          try {// 读取文件               System.out.println(dataInputStream.readChar());              System.out.println(dataInputStream.readInt());              System.out.println(dataInputStream.readDouble());              System.out.println(dataInputStream.readFloat());              System.out.println(dataInputStream.readUTF());              dataInputStream.close();          } catch (IOException e) {              e.printStackTrace();          }      }  }  

?

import java.io.FileNotFoundException;  import java.io.PrintStream;    /*  * 继承自FilterOutputStream,其中DataOutputStream处理数据的存储,PrintStream处理显示  * 用于格式化打印  */  public class PrintStreamDemo {      public static void main(String[] args) throws FileNotFoundException {          // 把数据可视化格式显示到文本文件中           PrintStream printStream = new PrintStream("file/test2.txt");          printStream.println('a');          printStream.println(2);          printStream.println(3.2);          printStream.println("liuhaifang");          printStream.println("刘海房");          // 可视化显示到控制台           printStream = new PrintStream(System.out);          printStream.println("hello  java");      }  }  

?

?

?

读书人网 >编程

热点推荐