首页 > 代码库 > 数据流: DataInputStream 和 DataOutputStream

数据流: DataInputStream 和 DataOutputStream

/*
* 1、数据流: DataInputStream 和 DataOutputStream 一对。
* 1) DataInputStream 数据的字节输入流; DataOutputStream 数据的字节输出流。
* 2) 功能: 实现八种基本类型数据的输入/输出。 同时,也可实现字符串的输入/输出。
* 3) 特点: 八种基本类型的数据在输入/输出时,会保持类型不变。
* 因此,这种流特别适合在网络上实现基本类型数据和字符串的传递。
*
* 4) 方法:
* readByte() writeByte()
* readShort() writeShort();
* readInt() writeInt();
* readLong() writeLong();
* readFloat() writeFloat();
* readDouble() writeDouble();
* readBoolean() writeBoolean();
* readChar() writeChar();
*
* readUTF(); writeUTF();
*
* 5) 数据流属于处理流,它必须套接在节点流。
*
* 6) 注意: 数据流在读取与存储时的顺序要一致。否则,读取数据会失真。
*/

 

技术分享
public static void main(String[] args) {        byte b1 = 127;        short s1 = 32767;        int i1 = 2147483647;        long l1 = 9876543210L;        float f1 = 31.78f;        double d1 = 3.1415926;        char ch = ‘A‘;        boolean flag = true;                String str = "Hello";                String path = "d:/datas.dat";                //2 声明         DataOutputStream  dos = null;        DataInputStream  dis = null;                //3创建        try {            dos = new DataOutputStream( new FileOutputStream( path) );            dis = new DataInputStream( new FileInputStream( path ) );            //4 存盘            dos.writeByte( b1 );            dos.writeShort( s1 );            dos.writeInt( i1 );            dos.writeLong( l1 );            dos.writeFloat( f1 );            dos.writeDouble( d1 );            dos.writeChar( ch );            dos.writeBoolean( flag );                        dos.writeUTF( str );                        //5 确保输出成功            dos.flush();            System.out.println("已将八种基本类型的数据及字符串存盘到 " + path + "文件中了。");                        //6从文件中读取八种基本类型的数据及字符串            b1 = dis.readByte();            s1 = dis.readShort();            i1 = dis.readInt();            l1 = dis.readLong();                        f1 = dis.readFloat();            d1 = dis.readDouble();                        ch = dis.readChar();            flag = dis.readBoolean();                    //    str = dis.readUTF();                        System.out.println("\n从 " + path + " 文件中读取八种基本类型数据及字符串如下:");                        System.out.println("b1 = " + b1 );            System.out.println("s1 = " + s1 );            System.out.println("i1 = " + i1 );            System.out.println("l1 = " + l1 );            System.out.println("f1 = " + f1 );            System.out.println("d1 = " + d1 );            System.out.println("ch = " + ch );            System.out.println("flag = " + flag );        //    System.out.println("str = " + str );                        //7 处理(如:显示)            long  x = b1 * 1L + s1 + i1 ;            System.out.println( "x = " + x );                    } catch (FileNotFoundException e) {            System.out.println("文件找不到: " + e.getMessage() );        } catch (IOException e) {            e.printStackTrace();         } finally {            try {                if( dos != null )                    dos.close();            } catch (IOException e) {            }                        try {                dis.close();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }
View Code

 

数据流: DataInputStream 和 DataOutputStream