<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Java `ObjectOutputStream`類 > 原文: [https://www.programiz.com/java-programming/objectoutputstream](https://www.programiz.com/java-programming/objectoutputstream) #### 在本教程中,我們將借助示例學習 Java `ObjectOutputStream`及其方法。 `java.io`包的`ObjectOutputStream`類可用于寫入可由`ObjectInputStream`讀取的對象。 它擴展了`OutputStream`抽象類。 ![The ObjectOutputStream class is a subclass of the Java OutputStream.](https://img.kancloud.cn/8f/10/8f109a6c4e8752a4101a948af2b60fad_496x372.png "Java ObjectOutputStream Class") * * * ## `ObjectOutputStream`的工作原理 基本上,`ObjectOutputStream`使用類名和對象值對 Java 對象進行編碼。 并且,因此生成相應的流。 此過程稱為序列化。 這些轉換后的流可以存儲在文件中,并且可以在網絡之間傳輸。 **注意**:`ObjectOutputStream`類僅寫入實現`Serializable`接口的對象。 這是因為對象在寫入流時需要序列化 * * * ## 創建一個`ObjectOutputStream` 為了創建對象輸出流,我們必須首先導入`java.io.ObjectOutputStream`包。 導入包后,就可以創建輸出流。 ```java // Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream); ``` 在上面的示例中,我們創建了一個名為`objStream`的對象輸出流,該對象輸出流與名為`fileStream`的文件輸出流鏈接在一起。 * * * ## `ObjectOutputStream`的方法 `ObjectOutputStream`類提供了`OutputStream`類中存在的不同方法的實現。 ## `write()`方法 * `write()` - 將字節數據寫入輸出流 * `writeBoolean()` - 以布爾形式寫入數據 * `writeChar()` - 以字符形式寫入數據 * `writeInt()` - 以整數形式寫入數據 * `writeObject()` - 將對象寫入輸出流 * * * ### 示例 1:Java `ObjectOutputStream` 讓我們看看如何使用`ObjectOutputStream`將對象存儲在文件中,以及如何使用`ObjectInputStream`從文件中讀取這些對象 ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; class Main { public static void main(String[] args) { int data1 = 5; String data2 = "This is programiz"; try { FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // writes objects to output stream output.writeInt(data1); output.writeObject(data2); // Reads data using the ObjectInputStream FileInputStream fileStream = new FileInputStream("file.txt"); ObjectInputStream objStream = new ObjectInputStream(fileStream); System.out.println("Integer data :" + objStream.readInt()); System.out.println("String data: " + objStream.readObject()); output.close(); objStream.close(); } catch (Exception e) { e.getStackTrace(); } } } ``` **輸出** ```java Integer data: 5 String data: This is programiz ``` 在上面的示例中,我們使用`readInt()`方法和`readObject()`方法從文件中讀取整數數據和對象數據。 在這里,我們使用`ObjectOutputStream`將數據寫入文件。 然后,我們使用`ObjectInputStream`從文件中讀取數據。 * * * ### 示例 2:Java `ObjectOutputStream` 再舉一個例子 ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; class Dog implements Serializable { String name; String breed; public Dog(String name, String breed) { this.name = name; this.breed = breed; } } class Main { public static void main(String[] args) { // Creates an object of Dog class Dog dog1 = new Dog("Tyson", "Labrador"); try { FileOutputStream fileOut = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream objOut = new ObjectOutputStream(fileOut); // Writes objects to the output stream objOut.writeObject(dog1); // Reads the object FileInputStream fileIn = new FileInputStream("file.txt"); ObjectInputStream objIn = new ObjectInputStream(fileIn); // Reads the objects Dog newDog = (Dog) objIn.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); objOut.close(); objIn.close(); } catch (Exception e) { e.getStackTrace(); } } } ``` **輸出**: ```java Dog Name: Tyson Dog Breed: Labrador ``` 在上面的示例中,我們創建了 * `ObjectOutputStream`命名為`objOut`,使用`FileOutputStream`命名為`fileOut` * `ObjectInputStream`名為`objIn`,使用`fileIn`命名。 * `Dog`類的對象`dog1`。 在這里,我們然后使用對象輸出流將對象寫入文件。 并且,對象輸入流從文件中讀取對象。 **注意**:`Dog`類實現`Serializable`接口。 這是因為`ObjectOutputStream`只寫可以序列化到輸出流的對象。 * * * ## `ObjectOutputStream`的其他方法 | 方法 | 內容描述 | | --- | --- | | `flush()` | 清除輸出流中的所有數據 | | `drain()` | 將所有緩沖的數據放入輸出流 | | `close()` | 關閉輸出流 | 要了解更多信息,請訪問 [Java `ObjectOutputStream`(官方 Java 文檔)](https://docs.oracle.com/javase/7/docs/api/java/io/ObjectOutputStream.html# "Java ObjectOutputStream (official Java documentation)")。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看