• 【Java-----IO流(五)之数据流详解】


    数据流概述

    数据流也是处理流的一种,为了方便操作Java语言中的基本数据类型和String类型的数据,可以使用数据流来进行操作。数据流可以将我们Java语言中的基本数据类型和String类型的数据持久化存储到硬盘中,需要的时候就可以使用数据输入流将硬盘中持久存储的数据读入到程序中。这里的持久化存储和我们单独对文本的存储是不一样的,持久化存储到硬盘中的文件不是直接打开看的(打开看有的很多都会出现乱码),只是为了进行存储。

    数据流分类

    • DataOutputStream:数据输出流,一般是套接在OutputStream类的子类对象上
    • DataInputStream:数据输入流,一般是套接在InputStream类的子类对象上

    DataOutputStream

    构造方法

    public DataOutputStream(OutputStream out):创建一个新的数据输出流对象

    1. FileOutputStream fos=new FileOutputStream("D:\\aaa\\helloworld.txt");
    2. DataOutputStream dos=new DataOutputStream(fos);

    常用方法

    • void writeBoolean()
    dos.writeBoolean(true);
    • void writeByte()
    1. byte b='?';
    2. dos.writeByte(b);
    • void writeShort()
    1. short s=12;
    2. dos.writeShort(s);
    • void writeInt()
    1. int i=3;
    2. dos.writeInt(i);
    • void writeChar()
    1. char c='a';
    2. dos.writeChar(c);
    • void writeFloat()
    1. float f=9;
    2. dos.writeFloat(f);
    • void writeDouble()
    1. double d=7.2;
    2. dos.writeDouble(d);
    • void writeLong()
    1. long l=10;
    2. dos.writeLong(l);
    • void writeUTF():写字符串
    • void writeBytes(String s)
    1. String str="中国";
    2. dos.writeUTF(str);
    3. dos.writeBytes(str);

    DataInputStream

    注意:我们使用数据输出流是按照什么顺序进行存储的,这个时候如果我们使用数据输入流读取时,也要按照相同的顺序读取

    构造方法

    public DataInputStream(InputStream in):创建一个新的数据输入流对象

    1. FileInputStream fis=new FileInputStream("D:\\aaa\\helloworld.txt");
    2. DataInputStream dis=new DataInputStream(fis);

    常用方法

    • boolean readBoolean()
    1. //dos.writeBoolean(true);
    2. boolean boo=dis.readBoolean();
    3. System.out.println(boo);
    4. //输出:true
    • byte readByte()
    1. /*
    2. byte b='?';
    3. dos.writeByte(b);
    4. */
    5. byte by=dis.readByte();
    6. System.out.println(by);
    7. //输出:63
    • short readShort()
    1. /*
    2. short s=12;
    3. dos.writeShort(s);
    4. */
    5. short sh=dis.readShort();
    6. System.out.println(sh);
    7. //输出:12
    • int readInt()
    1. /*
    2. int i=3;
    3. dos.writeInt(i);
    4. */
    5. int in=dis.readInt();
    6. System.out.println(in);
    7. //输出:3
    • char readChar()
    1. /*
    2. char c='a';
    3. dos.writeChar(c);
    4. */
    5. char ch=dis.readChar();
    6. System.out.println(ch);
    7. //输出:a
    • float readFloat()
    1. /*
    2. float f=9;
    3. dos.writeFloat(f);
    4. */
    5. float fl=dis.readFloat();
    6. System.out.println(fl);
    7. //输出:9.0
    • double readDouble()
    1. /*
    2. double d=7.2;
    3. dos.writeDouble(d);
    4. */
    5. double db=dis.readDouble();
    6. System.out.println(db);
    7. //输出:7.2
    • long readLong()
    1. /*
    2. long l=10;
    3. dos.writeLong(l);
    4. */
    5. long lo=dis.readLong();
    6. System.out.println(lo);
    7. //输出:10
    • String readUTF():读取字符串
    1. /*
    2. String str="中国";
    3. dos.writeUTF(str);
    4. */
    5. String ss=dis.readUTF();
    6. System.out.println(ss);
    7. //输出:中国

  • 相关阅读:
    ISIS默认层级实验简述
    react如何根据变量渲染组件
    【AI视野·今日NLP 自然语言处理论文速览 第五十四期】Fri, 13 Oct 2023
    JVM基本概念、命令、参数、GC日志总结
    redis-操作数据库
    企业内容建站系统 ModStartCMS v4.5.0 后台登录改版,登录安全增强
    add_precompiled_header
    rpm管理
    redis 06 集群
    Dubbo-Adaptive实现原理
  • 原文地址:https://blog.csdn.net/qq_45071131/article/details/127704564