JAVA中的数据流DataInputStream

11 篇文章 0 订阅

DataInputStream类是Java.io包中的一个重要类,它用于从输入流中读取基本数据类型(如int、float、long等)和字符串。本文将详细介绍DataInputStream类的用法、特点以及在实际应用中的示例,并给出代码及运行结果。

一、DataInputStream类概述

  1. 类定义 DataInputStream类是一个过滤流,它继承了FilterInputStream类,并实现了DataInput接口。

  2. 主要功能 DataInputStream类主要用于读取基本数据类型和字符串,它提供了一系列读取方法,使得从输入流中读取数据变得简单高效。

  3. 构造方法 DataInputStream类提供了以下构造方法:

  • DataInputStream(InputStream in):创建一个使用指定字节输入流的新数据输入流。

二、DataInputStream类的方法 以下是DataInputStream类的一些常用方法:

读取基本数据类型

  • readBoolean():读取一个布尔值
  • readByte():读取一个字节
  • readChar():读取一个字符
  • readDouble():读取一个双精度浮点数
  • readFloat():读取一个单精度浮点数
  • readInt():读取一个整数
  • readLong():读取一个长整数
  • readShort():读取一个短整数

读取字符串

  • readUTF():读取一个使用UTF-8编码的字符串
  • readLine():读取一个字符串,已过时,不推荐使用

其他方法

  • skipBytes(int n):跳过输入流中的n个字节
  • available():返回输入流中可读取的字节数
  • close():关闭输入流

三、DataInputStream类使用示例 以下是一个使用DataInputStream类读取文件中基本数据类型和字符串的示例:

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class DataInputStreamExample {
    public static void main(String[] args) {
        try {
            // 创建文件输入流
            FileInputStream fis = new FileInputStream("data.txt");
            // 创建数据输入流
            DataInputStream dis = new DataInputStream(fis);
            // 读取基本数据类型
            int age = dis.readInt();
            double salary = dis.readDouble();
            boolean isMarried = dis.readBoolean();
            String name = dis.readUTF();
            // 输出读取的数据
            System.out.println("Name: " + name);
            System.out.println("Age: " + age);
            System.out.println("Salary: " + salary);
            System.out.println("Is Married: " + isMarried);
            // 关闭流
            dis.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

假设文件data.txt的内容如下:

25
10000.0
true
张三

运行结果:

Name: 张三
Age: 25
Salary: 10000.0
Is Married: true

 五、总结

DataInputStream类是Java中用于读取基本数据类型和字符串的过滤流,它简化了从输入流中读取数据的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值