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世界!