是Java中输入输出流的装饰类
DataOutputStream 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。
主要方法:
void write(byte[] b,int off,int len);//将byte数组off角标开始的len个字节写到OutputStream 输出流对象中。
void write(int b);//将指定字节的最低8位写入基础输出流。
void writeBoolean(boolean b);//将一个boolean值以1-byte形式写入基本输出流。
void writeByte(int v);//将一个byte值以1-byte值形式写入到基本输出流中。
void writeBytes(String s);//将字符串按字节顺序写入到基本输出流中。
void writeChar(int v);//将一个char值以2-byte形式写入到基本输出流中。先写入高字节。
void writeInt(int v);//将一个int值以4-byte值形式写入到输出流中先写高字节。
void writeUTF(String str);//以机器无关的的方式用UTF-8修改版将一个字符串写到基本输出流。该方法先用writeShort写入两个字节表示后面的字节数。
int size();//返回written的当前值
DataInputStream 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入后由数据输入流读取的数据。
主要方法:
int read(byte[] b);//从输入流中读取一定的字节,存放到缓冲数组b中。返回缓冲区中的总字节数。
int read(byte[] buf,int off,int len);//从输入流中一次读入len个字节存放在字节数组中的偏移off个字节及后面位置。
String readUTF();//读入一个已使用UTF-8修改版格式编码的字符串
String readLine();
boolean readBoolean;
int readInt();
byte readByte();
char readChar();
注意:DataInputStream与DataOutputStream必须成对出现 DataInputStream读数据时,需要和DataOutputStream写入时的顺序一致,也不能跳过读
package io; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class DataIOTest { public static void main(String[] args) { writeData(); readData(); } private static void writeData() { DataOutputStream dos = null; try { dos = new DataOutputStream(new FileOutputStream(new File("dataoutput.txt"))); } catch (FileNotFoundException e1) { e1.printStackTrace(); } try { dos.writeInt(123); dos.writeByte(‘C‘); dos.writeDouble(12.345); dos.writeFloat((float) 1.23); dos.writeUTF("this is a string"); dos.flush(); } catch (IOException e) { e.printStackTrace(); } finally { if (null != dos) { try { dos.close(); } catch (IOException e) { e.printStackTrace(); } } } } private static void readData() { DataInputStream dis = null; try { dis = new DataInputStream(new FileInputStream(new File("dataoutput.txt"))); } catch (FileNotFoundException e) { e.printStackTrace(); } try { System.out.println(dis.readInt()); System.out.println((char)dis.readByte()); System.out.println(dis.readDouble()); System.out.println(dis.readFloat()); System.out.println(dis.readUTF()); } catch (IOException e) { e.printStackTrace(); } finally { if (null != dis) { try { dis.close(); } catch (IOException e) { e.printStackTrace(); } } } } }