<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Java `ObjectInputStream`類 > 原文: [https://www.programiz.com/java-programming/objectinputstream](https://www.programiz.com/java-programming/objectinputstream) #### 在本教程中,我們將借助示例學習 Java `ObjectOutputStream`及其方法。 `java.io`包的`ObjectInputStream`類可用于讀取先前由`ObjectOutputStream`寫入的對象。 它擴展了`InputStream`抽象類。 ![Java ObjectInputStream class is a subclass of the Java InputStream.](https://img.kancloud.cn/32/b9/32b9e3b937373200947a4b3f5c96e751_456x372.png "Java ObjectInputStream Class") 在學習`ObjectInputStream`類之前,請確保您了解[`ObjectOutputStream`類](/java-programming/objectoutputstream "Java ObjectOutputStream Class")。 * * * ## `ObjectInputStream`的工作原理 `ObjectInputStream`主要用于讀取`ObjectOutputStream`寫入的數據。 基本上,`ObjectOutputStream`將 Java 對象轉換為相應的流。 這稱為序列化。 這些轉換后的流可以存儲在文件中,也可以通過網絡傳輸。 現在,如果需要讀取這些對象,將使用`ObjectInputStream`將流轉換回相應的對象。 這稱為反序列化。 * * * ## 創建一個`ObjectInputStream` 為了創建對象輸入流,我們必須首先導入`java.io.ObjectInputStream`包。 導入包后,就可以創建輸入流。 ```java // Creates a file input stream linked with the specified file FileInputStream fileStream = new FileInputStream(String file); // Creates an object input stream using the file input stream ObjectInputStream objStream = new ObjectInputStream(fileStream); ``` 在上面的示例中,我們創建了一個名為`objStream`的對象輸入流,該對象輸入流與名為`fileStream`的文件輸入流鏈接在一起。 現在,`objStream`可用于從文件讀取對象。 * * * ## `ObjectInputStream`的方法 `ObjectInputStream`類提供`InputStream`類中存在的不同方法的實現。 ## `read()`方法 * `read()` - 從輸入流中讀取一個字節的數據 * `readBoolean()` - 以布爾形式讀取數據 * `readChar()` - 以字符形式讀取數據 * `readInt()` - 讀取整數形式的數據 * `readObject()` - 從輸入流中讀取對象 * * * ### 示例 1:Java `ObjectInputStream` 讓我們看看如何使用`ObjectInputStream`類讀取由`ObjectOutputStream`類編寫的對象。 ```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"); ObjectOutputStream output = new ObjectOutputStream(file); // Writing to the file using ObjectOutputStream output.writeInt(data1); output.writeObject(data2); FileInputStream fileStream = new FileInputStream("file.txt"); // Creating an object input stream ObjectInputStream objStream = new ObjectInputStream(fileStream); //Using the readInt() method System.out.println("Integer data :" + objStream.readInt()); // Using the readObject() method 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 `ObjectInputStream` 讓我們看另一個實際的例子, ```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 dog = new Dog("Tyson", "Labrador"); try { FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // Writes objects to the output stream output.writeObject(dog); FileInputStream fileStream = new FileInputStream("file.txt"); // Creates an ObjectInputStream ObjectInputStream input = new ObjectInputStream(fileStream); // Reads the objects Dog newDog = (Dog) input.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); output.close(); input.close(); } catch (Exception e) { e.getStackTrace(); } } } ``` **輸出**: ```java Dog Name: Tyson Dog Breed: Labrador ``` 在上面的示例中,我們創建了 * 名為`output`的`ObjectOutputStream`,使用名為`file`的文件 * 名為`input`的`ObjectInputStream`,使用名為`fileStream`的`FileInputStream` * `Dog`類的對象`Dog` 在這里,我們然后使用對象輸出流將對象寫入文件。 并且,對象輸入流從文件中讀取對象。 **注意**:`Dog`類實現`Serializable`接口。 這是因為`ObjectOutputStream`僅將可序列化的對象寫入輸出流。 * * * ## `ObjectInputStream`的其他方法 | 方法 | 內容描述 | | --- | --- | | `available()` | 返回輸入流中的可用字節數 | | `mark()` | 標記輸入流中已讀取數據的位置 | | `reset()` | 將控件返回到輸入流中設置了標記的點 | | `skipBytes()` | 從輸入流中跳過并丟棄指定的字節 | | `close()` | 關閉對象輸入流 | 要了解更多信息,請訪問 [Java `ObjectInputStream`(官方 Java 文檔)](https://docs.oracle.com/javase/7/docs/api/java/io/ObjectInputStream.html "Java ObjectInputStream (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>

                              哎呀哎呀视频在线观看