DataInputStream和DataOutputStream提供了可以直接存取java基本类型(int,double等)的方法。对于存取基本类型,在效率上比普通字节流要快很多。它们分别继承inputStream和outputStream,并且需要套接在InputStream和OutputStream上。
这两个类中的方法除了有读写基本类型的方法外,还有一个读写utf(即Unicode字符串utf-8)的方法。
以下程序和讲解摘自马士兵教程
1 import java.io.ByteArrayInputStream; 2 import java.io.ByteArrayOutputStream; 3 import java.io.DataInputStream; 4 import java.io.DataOutputStream; 5 import java.io.IOException; 6 7 8 public class TestDataStream { 9 10 /** 11 * @param args 12 */ 13 public static void main(String[] args) { 14 // TODO Auto-generated method stub 15 ByteArrayOutputStream baos= new ByteArrayOutputStream(); 16 DataOutputStream dos=new DataOutputStream(baos); 17 18 try { 19 20 dos.writeDouble(0.11); 21 dos.writeBoolean(true); 22 ByteArrayInputStream bais=new ByteArrayInputStream(baos.toByteArray()); 23 System.out.println(bais.available()); 24 DataInputStream dis=new DataInputStream(bais); 25 System.out.println(dis.readDouble()); //注意:这里必须先读double后读boolean,否则无法正确读取数据 26 System.out.println(dis.readBoolean());dos.close();dis.close(); 27 } catch (IOException e) { 28 // TODO Auto-generated catch block 29 e.printStackTrace(); 30 } 31 } 32 33 }