美文网首页
No.18 基本数据类型写入流:DataInputStream/

No.18 基本数据类型写入流:DataInputStream/

作者: 醒着的码者 | 来源:发表于2016-04-10 22:20 被阅读695次

    简介:

    DataOutputStream数据输出流: 将java基本数据类型写入数据输出流中。
    DataInputStream数据输入流:将DataOutputStream写入流中的数据读入。

    这两个数据流分别FilterInputStream/FilterOutputStream的子类,顾名思义如同Buffer流一样,也是提高了写入和读出效率的。

    DataOutputStream中write的方法重载:

    • 继承了字节流父类的两个方法:
      (1)void write(byte[] b,int off,int len);
      (2)void write(int b);//写入UTF数值,代表字符
      注意字节流基类不能直接写入string 需要先将String转化为getByte()转化为byte数组写入
    • 特有的指定基本数据类型写入:
      (1)void writeBoolean(boolean b);//将一个boolean值以1byte形式写入基本输出流。
      (2)void writeByte(int v);//将一个byte值以1byte值形式写入到基本输出流中。
      (3)void writeBytes(String s);//将字符串按字节顺序写入到基本输出流中。
      (4)void writeChar(int v);//将一个char值以2byte形式写入到基本输出流中。先写入高字节。写入的也是编码值;
      (5)void writeInt(int v);//将一个int值以4byte值形式写入到输出流中先写高字节。
      (6)void writeUTF(String str);//以机器无关的的方式用UTF-8修改版将一个字符串写到基本输出流。该方法先用writeShort写入两个字节表示后面的字节数。

    DataInputStream中read方法重载:

    • 继承了字节流父类的方法:
      int read();
      int read(byte[] b);
      int read(byte[] buf,int off,int len);
    • 对应write方法的基本数据类型的读出:
      String readUTF();//读入一个已使用UTF-8修改版格式编码的字符串
      boolean readBoolean;
      int readInt();
      byte readByte();
      char readChar();

    注意:

    基本数据类型的写入流和输出流,必须保证以什么顺序按什么方式写入数据,就要按什么顺序什么方法读出数据,否则会导致乱码,或者异常产生。

    列子:

    public class Test {
    
    public static void main(String[] args) {
        DataOutputStream dos = null;
        DataInputStream dis = null;
        try {
            //写入基本数据类型
            dos = new DataOutputStream(new FileOutputStream("d://dataTest.txt"));
            dos.writeUTF("你好呀,ok");
            dos.writeInt(18888);
            dos.writeLong(188888);
            dos.writeByte(123);
            dos.writeFloat(1.344f);
            dos.writeBoolean(true);
            dos.writeDouble(1.444444d);
            dos.writeChar(49);
            
            dos.flush();
            dos.close();
            //读出基本数据类型
            dis = new DataInputStream(new FileInputStream("d://dataTest.txt"));
    
            System.out.println(dis.readUTF());          
            System.out.println(dis.readInt());
            System.out.println(dis.readLong());
            System.out.println(dis.readByte());
            System.out.println(dis.readFloat());
            System.out.println(dis.readBoolean());
            System.out.println(dis.readDouble());
            System.out.println(dis.readChar());
            
            dis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
      }
    }

    相关文章

      网友评论

          本文标题:No.18 基本数据类型写入流:DataInputStream/

          本文链接:https://www.haomeiwen.com/subject/tpaulttx.html