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 类的应用。
DataInputStream 和 DataOutputStream 是处理流,可以对其他节点流或处理流进行包装,以增加一些更灵活、更高效的功能。
DataInputStream 类和 DataOutputStream 类的构造方法如下:
- DataInputStream(InputStream in):使用指定的基础输入流创建一个 DataInputStream;
- DataOutputStream(OutputStream out):创建一个新的数据输出流,将数据写入指定的基础输出流中。
DataInputStream 类提供的 readUTF() 方法用来返回字符串,写入字符串的方法包括 writeBytes(String s)、writeChars(String s) 和 writeUTF(String str)。由于 Java 中的字符采用 Unicode 编码,因此是双字节的:
- writeBytes(String s):将字符串的每个字符的低字节内容写入目标设备中;
- writeChars():将字符串的每个字符的 2 字节的内容写入目标设备中;
- writeUTF():将字符串按照 UTF 编码后的字节长度写入目标设备中,之后才是每个字节的 UTF 编码。
【实例】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世界!
ICP备案:
公安联网备案: