DataInputStream和DataOutputStream是对流的修饰,对流添加自己的格式
<span style="white-space:pre"> </span>DataOutputStream dbos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("t"))); dbos.writeInt(2); dbos.writeUTF("userid"); dbos.writeUTF("param"); dbos.flush(); dbos.close(); DataInputStream dbis = new DataInputStream(new BufferedInputStream(new FileInputStream("t"))); System.out.println(dbis.readInt()); System.out.println(dbis.readUTF()); System.out.println(dbis.readUTF()); dbis.close();
调用一次writeXXX,就写入的是字节长度和字节
对应的readXXX就是根据字节长度读取字节流
BufferedReader(new InputStreamReader(dbis)) 是不行的,因为InputStreamReader需要知道dbis字节流的编码,而这种编码是其特有的,所有不能正确解码