package onlyfun.caterpillar; import java.io.*; public class DataStreamDemo { public static void main(String[] args) { Member[] members = {new Member("Justin", 90), new Member("momor", 95), new Member("Bush", 88)}; try { DataOutputStream dataOutputStream = new DataOutputStream( new FileOutputStream(args[0])); for(Member member : members) { // 寫入UTF字串 dataOutputStream.writeUTF(member.getName()); // 寫入int資料 dataOutputStream.writeInt(member.getAge()); } // 出清所有資料至目的地 dataOutputStream.flush(); // 關閉串流 dataOutputStream.close(); DataInputStream dataInputStream = new DataInputStream( new FileInputStream(args[0])); // 讀出資料並還原為物件 for(int i = 0; i < members.length; i++) { // 讀出UTF字串 String name = dataInputStream.readUTF(); // 讀出int資料 int score = dataInputStream.readInt(); members[i] = new Member(name, score); } // 關閉串流 dataInputStream.close(); // 顯示還原後的資料 for(Member member : members) { System.out.printf("%s\t%d%n", member.getName(), member.getAge()); } } catch(IOException e) { e.printStackTrace(); } } }