特殊流/数据流(DataInputStream与DataOutputStream)分析

本文分析了Java中的特殊流DataInputStream和DataOutputStream,它们属于高级字节流,用于以平台无关的方式读写基本数据类型。DataInputStream提供readUTF等特有方法,而DataOutputStream包含各种数据的写入方法。文章探讨了它们的继承结构和不同读写方式。
摘要由CSDN通过智能技术生成

特殊流(DataInputStream与DataOutputStream)分析

特殊流/数据流(DataInputStream与DataOutputStream)引用的是字节流,所以DataInputStream与DataOutputStream属于高级流。

DataInputStream

数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本Java数据类型。应用程序可以使用数据输出流写入稍后有数据输入流读取的数据。DateInputStream对于多线程访问不一定是安全的。线程安全是可选的,它由此类方法的使用者负责。

**

源码分析

**
继承关系
class DataInputStream extends FilterInputStream implements
第一种读取方式,无参

 /**
     /* int read() throws IOException {
         return in.read()
     /*读取第一个字节,返回值为int类型(使用FilterInputStream中的read()方法)
     */
     System.out.println(dataInputStream.read());

第二种读取方式,参数为byte[]

/**
             * final int read(byte b[]) throws IOException {
             *              return in.read(b, 0, b.length);
             *              }
             *  返回值为int类型,返回结果为读取到的实际个数
             */

            byte [] b=new byte[30];
            System.out.println(dataInputStream.read(b));
            System.out.println(Arrays.toString(b));

第三种读取方式,有参

/**
             *final int read(byte b[], int off, int len) throws IOException {
             *         return in.read(b, off, len);
             *  返回值:int类型,实际读取到的个数
             *  参数:
             *  byte b[]:表示读取到的数据存储到该数组
             *  int off:表示从存储数组的偏移位置off开始存储字符
             *  int len:读取的数据的长度
             */
            byte [] b=new byte[30];

            System.out.println(dataInputStream.read(b,0,5));
            System.out.println(Arrays.toString(b));

特有方法
readUTF读取由writeUTF修改的数据。

/**
             * 特殊方法
             * final String readUTF() throws IOException {
             *    return readUTF(this);
             */
          
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值