“层层包装”
package com.demo.zmz;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class DataDemo {
public static void main(String[] args) {
WirteData();
ReadData();
}
private static void ReadData() {
DataInputStream in = null;
try {
//包装
in = new DataInputStream(
new BufferedInputStream(
new FileInputStream("person.txt")));
try {
String name = in.readUTF();
int age = in.readInt();
boolean isSingle = in.readBoolean();
double height = in.readDouble();
System.out.println(name);
System.out.println(age);
System.out.println(isSingle);
System.out.println(height);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO: handle exception
}finally {
if(in != null) {
try {
in.close();
} catch (IOException e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
}
private static void WirteData() {
int age = 20;
String name = "Bob";
boolean isSingle = true;
double height = 1.75;
FileOutputStream fout = null;
BufferedOutputStream bout = null;
DataOutputStream dout = null;
try {
fout = new FileOutputStream("person.txt");
bout = new BufferedOutputStream(fout);
dout = new DataOutputStream(bout);
//字符串
dout.writeUTF(name);
dout.writeInt(age);
dout.writeBoolean(isSingle);
dout.writeDouble(height);
//强制刷新缓冲区
dout.flush();
} catch (FileNotFoundException e) {
// TODO: handle exception
e.printStackTrace();
}catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}finally {
if(dout != null) {
try {
dout.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}