首页 > 编程笔记 > Java笔记 阅读:25

Java DataInputStream和DataOutputStream类的用法(附带实例)

在 Java 中,数据输入/输出流允许程序以与机器无关的方式在底层输入/输出流中操作 Java 基本数据类型与字符串类型(如 int、double 和 String 等)。

DataInputStream 和 DataOutputStream 是处理流,可以对其他节点流或处理流进行包装,以增加一些更灵活、更高效的功能。

DataInputStream 类和 DataOutputStream 类的构造方法如下:
DataInputStream 类提供的 readUTF() 方法用来返回字符串,写入字符串的方法包括 writeBytes(String s)、writeChars(String s) 和 writeUTF(String str)。由于 Java 中的字符采用 Unicode 编码,因此是双字节的:
【实例】DataInputStream 类和 DataOutputStream 类的应用。
import java.io.*;

public class Example {
    public static void main(String[] args) {
        try (
            FileInputStream filein = new FileInputStream("D:\\chapter10\\a.txt");
            FileOutputStream fileout = new FileOutputStream("D:\\chapter10\\a.txt");
            DataInputStream datain = new DataInputStream(new BufferedInputStream(filein));
            DataOutputStream dataout = new DataOutputStream(new BufferedOutputStream(fileout));
        ) {
            // 将以下各类数据写入指定文件中
            dataout.writeInt(5);
            // 产生[0,1)的随机数
            dataout.writeDouble(Math.random());
            dataout.writeChar('e');
            dataout.writeBoolean(true);
            dataout.writeUTF("欢迎来到Java世界!");
            dataout.flush();
            // 读取各个数据,读取的顺序要与写入的顺序一致
            // 否则不能正确读取各个数据
            System.out.println("整型数: " + datain.readInt());
            System.out.println("双精度浮点数: " + datain.readDouble());
            System.out.println("字符: " + datain.readChar());
            System.out.println("布尔型值: " + datain.readBoolean());
            System.out.println("字符串: " + datain.readUTF());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
运行结果为:

整型数:5
双精度浮点数:0.8964294668642411
字符:e
布尔型值:true
字符串:欢迎来到Java世界!

相关文章