数据流: DataInputStream 和 DataOutputStream

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据流: 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的主要内容,如果未能解决你的问题,请参考以下文章

大数据必学Java基础(七十三):数据流DataInputStream和DataOutputStream介绍

DataOutputStream和DataInputStream

Java IO DataInputStream 和 DataOutputStream

JavaI/O:简单的使用DataOutputStream和DataInputStream操作文件流

Java中的DataInputStream和DataOutputStream的作用

DataInputStream和DataOutputStream