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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Java `ByteArrayInputStream`類 > 原文: [https://www.programiz.com/java-programming/bytearrayinputstream](https://www.programiz.com/java-programming/bytearrayinputstream) #### 在本教程中,我們將借助示例學習 Java `ByteArrayInputStream`及其方法。 `java.io`包的`ByteArrayInputStream`類可用于讀取輸入數據數組(以字節為單位)。 它擴展了`InputStream`抽象類。 ![The ByteArrayInputStream is a subclass of the Java InputStream.](https://img.kancloud.cn/4b/d0/4bd0266e239268d18589d9100f23999c_516x372.png "Java ByteArrayInputStream Class") **注意**:在`ByteArrayInputStream`中,使用字節數組創建輸入流。 它包括一個內部數組,用于存儲該特定字節數組的數據。 * * * ## 創建一個`ByteArrayInputStream` 為了創建字節數組輸入流,我們必須首先導入`java.io.ByteArrayInputStream`包。 導入包后,就可以創建輸入流。 ```java // Creates a ByteArrayInputStream that reads entire array ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr); ``` 在這里,我們創建了一個輸入流,該輸入流從`arr`數組讀取整個數據。 但是,我們也可以創建僅從數組讀取一些數據的輸入流。 ```java // Creates a ByteArrayInputStream that reads a portion of array ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr, int start, int length); ``` 此處,輸入流從`start`位置開始,從數組中讀取等于`length`的字節數。 * * * ## `ByteArrayInputStream`的方法 `ByteArrayInputStream`類提供了`InputStream`類中存在的不同方法的實現。 ### `read()`方法 * `read()` - 從輸入流中存在的數組中讀取單個字節 * `read(byte[] array)` - 從輸入流中讀取字節并將其存儲在指定的數組中 * `read(byte[] array, int start, int length)` - 從流中讀取等于`length`的字節數,并從位置`start`開始存儲在指定的數組中 ### 示例:`ByteArrayInputStream`讀取數據 ```java import java.io.ByteArrayInputStream; public class Main { public static void main(String[] args) { // Creates an array of byte byte[] array = {1, 2, 3, 4}; try { ByteArrayInputStream input = new ByteArrayInputStream(array); System.out.print("The bytes read from the input stream: "); for(int i= 0; i < array.length; i++) { // Reads the bytes int data = input.read(); System.out.print(data + ", "); } input.close(); } catch(Exception e) { e.getStackTrace(); } } } ``` **輸出** ```java The bytes read from the input stream: 1, 2, 3, 4, ``` 在上面的示例中,我們創建了一個名為`input`的字節數組輸入流。 ```java ByteArrayInputStream input = new ByteArrayInputStream(array); ``` 在此,輸入流包括來自指定數組的所有數據。 為了從輸入流中讀取數據,我們使用了`read()`方法。 * * * ### `available()`方法 要獲取輸入流中可用字節的數量,我們可以使用`available()`方法。 例如, ```java import java.io.ByteArrayInputStream; public class Main { public static void main(String args[]) { // Creates an array of bytes byte[] array = { 1, 2, 3, 4 }; try { ByteArrayInputStream input = new ByteArrayInputStream(array); // Returns the available number of bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 2 bytes from the input stream input.read(); input.read(); // Returns the available number of bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); } catch (Exception e) { e.getStackTrace(); } } } ``` **輸出**: ```java Available bytes at the beginning: 4 Available bytes at the end: 2 ``` 在上面的示例中, 1. 我們已經使用`available()`方法檢查輸入流中的可用字節數。 2. 然后,我們使用`read()`方法 2 次,從輸入流中讀取 2 個字節。 3. 現在,在讀取 2 個字節后,我們檢查了可用字節。 這次,可用字節減少了 2。 * * * ### `skip()`方法 要丟棄并跳過指定的字節數,可以使用`skip()`方法。 例如, ```java import java.io.ByteArrayInputStream; public class Main { public static void main(String args[]) { // Create an array of bytes byte[] array = { 1, 2, 3, 4 }; try { ByteArrayInputStream input = new ByteArrayInputStream(array); // Using the skip() method input.skip(2); System.out.print("Input stream after skipping 2 bytes: "); int data = input.read(); while (data != -1) { System.out.print(data + ", "); data = input.read(); } // close() method input.close(); } catch (Exception e) { e.getStackTrace(); } } } ``` **輸出**: ```java Input stream after skipping 2 bytes: 3, 4, ``` 在上面的示例中,我們使用`skip()`方法從輸入流中跳過 2 個字節的數據。 因此,不會從輸入流中讀取`1`和`2`。 * * * ### `close()`方法 要關閉輸入流,可以使用`close()`方法。 但是,`close()`方法在`ByteArrayInputStream`類中無效。 即使調用了`close()`方法,我們也可以使用此類的方法。 * * * ## `ByteArrayInputStream`的其他方法 | 方法 | 內容描述 | | --- | --- | | `finalize()` | 確保調用`close()`方法 | | `mark()` | 標記輸入流中已讀取數據的位置 | | `reset()` | 將控件返回到輸入流中設置了標記的點 | | `markSupported()` | 檢查輸入流是否支持`mark()`和`reset()` | 要了解更多信息,請訪問 [Java `ByteArrayInputStream`(Java 官方文檔)](https://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayInputStream.html "Java ByteArrayInputStream (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>

                              哎呀哎呀视频在线观看