Java語言中的數據流與對象流在程序設計中占據了重要位置,它們承擔著將Java程序中的數據和對象序列化為字節流的任務。下面我們來看一些具體例子:
數據流的例子:
try (DataOutputStream out = new DataOutputStream(new FileOutputStream("data.txt"))) { // 寫入一個整型數據 out.writeInt(123); // 寫入一個浮點型數據 out.writeDouble(3.14); // 寫入一個字符串 out.writeUTF("hello world"); } catch (IOException e) { e.printStackTrace(); }
對象流的例子:
Person p = new Person("Alice", 25, "Female"); try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("person.ser"))) { // 序列化一個Person對象 out.writeObject(p); } catch (IOException e) { e.printStackTrace(); } try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("person.ser"))) { // 從文件中反序列化出一個Person對象 Person p2 = (Person) in.readObject(); System.out.println(p2); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); }
以上代碼中,數據流的例子使用了DataOutputStream類,通過writeInt、writeDouble、writeUTF等方法將數據寫入輸出流中,最終輸出到data.txt文件中。這個文件中的數據雖然不可讀,但卻可以被其他程序讀取并還原出原有的Java對象。
對象流的例子則使用了ObjectOutputStream和ObjectInputStream類,將一個Person對象序列化為一個.ser文件,再從該文件中反序列化出一個Person對象并輸出其屬性信息。通過對象流,Java程序中的對象可以以二進制數據的形式被序列化并寫入到文件或流中,以備后續讀取和使用。
下一篇css優化 阮一峰