zoukankan      html  css  js  c++  java
  • 5.24JavaIO数据流

    5.24JavaIO数据流

    DataInputStream&&DataOutputStream

    作用:

    特点:

    • 数据类型按顺序写入并且按顺序读出

    DataOutputStream

    特点:

    • 保存了数据类型写入到输出流当中,构造器需要一个字节流,内部要有一个最底层的节点流

    • 底层节点流

      • 1、File

      • 2、ByteArray

    DataInputStream

    特点:

    • 构造器放入输入流

    • 有大量的读取数据类型的方法

    一个完整的IO流需要涉及的流
    • 一个节点流

    • 可有可无的装饰流--->加速读取数据类型

    • 需要转型的时候用到字节或字符流

    DataIputStream和DataOutputStream的演示demo

    package iostudy.data;

    import java.io.*;

    /**
    * 数据流
    * 1、先写出在读取--->先写出在读取
    * 2、读取的顺序和写出的顺序一致
    * @since JDK 1.8
    * @date 2021/5/24
    * @author Lucifer
    */
    public class DataTest {
       public static void main(String[] args) throws IOException{
           //DataOutputStream--->保存了数据类型写入输出流当中--->构造器需要一个字节流,内部要有一个最底层的节点流
           /*
           底层节点流
           1、File
           2、ByteArray--->新增的方法toByteArray意味着不需要多态
           !!!任何数据都可以转成字节数组
            */
           //写出
           ByteArrayOutputStream baos = new ByteArrayOutputStream();
           DataOutputStream dos = new DataOutputStream(
                   new BufferedOutputStream(
                           baos
                  )
          );
           //操作数据类型 + 数据
           dos.writeUTF("我是真的帅");
           dos.writeInt(21);
           dos.writeBoolean(false);
           dos.writeChar('c');
           //刷新一下
           dos.flush();
           /*
           上面的操作是将那些数据类型的数据写入到字节数组缓冲流当中
            */
           //存放数据的字节数组
           byte[] datas = baos.toByteArray();

           //读取
           DataInputStream dis = new DataInputStream(
                   //最外层装饰器
                       new BufferedInputStream(
                               new ByteArrayInputStream(
                                       datas
                              )
                      )
          );
           /*
           有里到外
           1、节点流
           2、节点数据类型转换流
           3、装饰流
            */
           //按照写入的数据类型读取
           String msg = dis.readUTF();
           int age = dis.readInt();
           boolean flag = dis.readBoolean();
           char ch = dis.readChar();
           System.out.println(msg);
      }
    }

     

    It's a lonely road!!!
  • 相关阅读:
    通用sqlserver分页存储过程
    JSONP解决跨域请求
    laravle框架
    XML作用
    mysql 中的常用查询
    smarty模板技术
    Cookie和Session 会话技术
    正则表达式
    Mongodb常用知识点
    PHP之PDO
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14812000.html
Copyright © 2011-2022 走看看