基本概念
DataInputStream 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。
DataOutputStream 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。
同对象流(ObjectInputStream /ObjectOutputStream) 相比,它们支持对于基本数据类型的操作,但是对象流还支持 Object 类行的操作。
实例探究
- 注意:写入的顺序要和读取的顺序一致
public class Test {
private static final String TEMPFILE = "E:" + File.separator + "Test.txt";
public static void main(String[] args) throws IOException {
write(TEMPFILE);
read(TEMPFILE);
}
private static void read(String path) throws IOException {
DataInputStream dis = new DataInputStream(new FileInputStream(new File(path)));
System.out.println(dis.readBoolean());
System.out.println(new String(new byte[] { dis.readByte() }));
System.out.println(dis.readChar());
System.out.println(dis.readShort());
System.out.println(dis.readInt());
System.out.println(dis.readLong());
System.out.println(dis.readUTF());
dis.close();
}
private static void write(String path) throws IOException {
DataOutputStream dos = new DataOutputStream(new FileOutputStream(new File(path)));
dos.writeBoolean(true);
dos.writeByte((byte) 0x41);
dos.writeChar((char) 0x4243);
dos.writeShort((short) 0x4445);
dos.writeInt(0x12345678);
dos.writeLong(0x0FEDCBA987654321L);
dos.writeUTF("abcdefghijklmnopqrstuvwxyz严12");
dos.close();
}
}