DataOutputStream&DataInputStream是对输出输入流的扩展,可以直接读写int double等数据类型
下面是今天的练习,细节都写到注释里面了:
package Zhang; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class DataStreamTest { public static void main(String[] args) throws Exception{ //创建文件 File file=new File("/home/zhang/Desktop/DataStreamTest.dat"); if(!file.exists()){ file.createNewFile(); } //DataOutputStream&DataInputStream是对输出输入流的扩展,可以直接读写int double等数据类型 //采用的设计模式是装饰模式 DataOutputStream dos=new DataOutputStream(new FileOutputStream(file)); DataInputStream dis=new DataInputStream(new FileInputStream(file)); int testInt=2016; double testDouble=10.12; long testLong=20161012; dos.writeInt(testInt); dos.writeDouble(testDouble); dos.writeLong(testLong); /* * dos.writeUTF("xxx")在写入字符串到文件的同时,在文件中也保存了该字符串的长度,这样 * 在使用dis.readUTF()的时候就可以先获取文件中保存的字符串的长度信息,然后读取这个长度 * 的字符串。 * utf-8 一个汉字占用3个字节 * */ dos.writeUTF("今天的"); dos.writeUTF("天气非常好"); dos.close(); int intTest=dis.readInt(); System.out.println(intTest); double doubleTest=dis.readDouble(); System.out.println(doubleTest); long longTest=dis.readLong(); System.out.println(longTest); String time=dis.readUTF(); String how=dis.readUTF(); System.out.println(time+"\t"+how); dis.close(); } }