二者类似
数据流:
处理基本类型数据和字符串类型数据
@Test
public void testWrite() throws IOException {
File file = new File("b.txt");
FileOutputStream fos = new FileOutputStream(file);
DataOutputStream dos = new DataOutputStream(fos);
dos.writeDouble(22.4);
dos.flush();
dos.writeInt(5);
dos.flush();
dos.writeUTF("haha");
dos.flush();
dos.close();
}
@Test
public void testRead() throws IOException, ClassNotFoundException {
File file = new File("b.txt");
FileInputStream fis = new FileInputStream(file);
DataInputStream dis = new DataInputStream(fis);
double d = dis.readDouble();
int i = dis.readInt();
String s = dis.readUTF();
System.out.println(d);
System.out.println(i);
System.out.println(s);
dis.close();
}
注意:读入的顺序要和写入顺序一致,不然会报错
对象流:
处理对象、集合等数据
@Test
public void testWrite() throws IOException {
File file = new File("b.txt");
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(new XdlUser(1,"fj","333"));
oos.close();
}
@Test
public void testRead() throws IOException, ClassNotFoundException {
File file = new File("b.txt");
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
XdlUser user = (XdlUser)ois.readObject();
System.out.println(user);
ois.close();
}
注意:对象一定要序列化