在Java编程中,处理文件或网络数据时,我们常常需要从输入流中读取基本数据类型(如int、double、boolean等)。这时,DataInputStream 就派上用场了。本教程将带你从零开始,全面了解 Java DataInputStream 的使用方法,即使你是编程小白,也能轻松上手!
DataInputStream 是 Java I/O 流体系中的一个类,位于 java.io 包中。它允许应用程序以与机器无关的方式从底层输入流中读取基本 Java 数据类型。
简单来说,如果你有一个包含整数、浮点数、布尔值等二进制数据的文件,使用 DataInputStream 可以方便地将这些数据“还原”成 Java 中对应的变量类型。
要使用 DataInputStream,通常需要将其包装在一个已有的输入流之上,比如 FileInputStream 或 BufferedInputStream。这是因为 DataInputStream 本身并不直接操作文件或网络,而是依赖底层流来提供字节数据。
import java.io.DataInputStream;import java.io.FileInputStream;import java.io.IOException;public class DataInputStreamExample { public static void main(String[] args) { try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) { // 读取数据 } catch (IOException e) { e.printStackTrace(); } }} 注意:这里使用了 try-with-resources 语法,确保流在使用完毕后自动关闭,避免资源泄漏。
DataInputStream 提供了多种读取基本数据类型的方法:
readInt():读取一个 int 值(4 字节)readDouble():读取一个 double 值(8 字节)readBoolean():读取一个 boolean 值(1 字节)readUTF():读取一个 UTF-8 编码的字符串首先,我们使用 DataOutputStream 写入一些数据到文件:
import java.io.DataOutputStream;import java.io.FileOutputStream;import java.io.IOException;public class WriteData { public static void main(String[] args) { try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.bin"))) { dos.writeInt(123); dos.writeDouble(45.67); dos.writeBoolean(true); dos.writeUTF("Hello DataInputStream!"); System.out.println("数据写入完成。"); } catch (IOException e) { e.printStackTrace(); } }} 然后,使用 DataInputStream 读取这些数据:
import java.io.DataInputStream;import java.io.FileInputStream;import java.io.IOException;public class ReadData { public static void main(String[] args) { try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) { int num = dis.readInt(); double price = dis.readDouble(); boolean flag = dis.readBoolean(); String message = dis.readUTF(); System.out.println("读取的整数: " + num); System.out.println("读取的浮点数: " + price); System.out.println("读取的布尔值: " + flag); System.out.println("读取的字符串: " + message); } catch (IOException e) { e.printStackTrace(); } }} 运行结果:
读取的整数: 123读取的浮点数: 45.67读取的布尔值: true读取的字符串: Hello DataInputStream!
DataInputStream 不能单独使用,必须包装其他输入流。readUTF() 时,字符串必须是由 DataOutputStream.writeUTF() 写入的,否则可能无法正确解析。通过本教程,你已经掌握了 Java DataInputStream 的基本概念和使用方法。无论是处理本地二进制文件,还是解析网络协议中的原始数据,DataInputStream 都是一个强大而实用的工具。
记住关键点:包装底层流、按写入顺序读取、使用 try-with-resources 管理资源。希望这篇 DataInputStream教程 能帮助你在 Java 二进制读取 的道路上更进一步!
如果你正在学习 Java I/O 操作,不妨动手实践一下上面的代码,加深对 DataInputStream用法 的理解。
本文由主机测评网于2025-12-17发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025128830.html