<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 `BufferedOutputStream`類 > 原文: [https://www.programiz.com/java-programming/bufferedoutputstream](https://www.programiz.com/java-programming/bufferedoutputstream) #### 在本教程中,我們將借助示例學習 Java `BufferedOutputStream`及其方法。 `java.io`包的`BufferedOutputStream`類與其他輸出流一起使用,可以更有效地寫入數據(以字節為單位)。 它擴展了`OutputStream`抽象類。 ![The BufferedOutputStream class is a subclass of the Java OutputStream.](https://img.kancloud.cn/9a/08/9a086d8e6ca40f1beded2c274196a7b0_516x372.png "Java BufferedOutputStream Class") * * * ## `BufferedOutputStream`的工作原理 `BufferedOutputStream`維護 8192 字節的內部**緩沖區**。 在寫操作期間,字節被寫入內部緩沖區而不是磁盤。 一旦緩沖區被填充或流關閉,整個緩沖區將被寫入磁盤。 因此,減少了與磁盤的通信次數。 這就是為什么使用`BufferedOutputStream`寫入字節更快的原因。 * * * ## 創建一個`BufferedOutputStream` 為了創建一個`BufferedOutputStream`,我們必須首先導入`java.io.BufferedOutputStream`包。 導入包后,就可以創建輸出流了。 ```java // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file); ``` 在上面的示例中,我們使用名為`file`創建了名為`buffer`的`BufferdOutputStream`。 在此,內部緩沖區的默認大小為 8192 字節。 但是,我們也可以指定內部緩沖區的大小。 ```java // Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size); ``` `buffer`將有助于更快地將字節寫入文件。 * * * ## `BufferedOutputStream`的方法 `BufferedOutputStream`類為`OutputStream`類中的不同方法提供了實現。 ### `write()`方法 * `write()` - 將單個字節寫入輸出流的內部緩沖區 * `write(byte[] array)` - 將指定數組中的字節寫入輸出流 * `write(byte[] arr, int start, int length)` - 從位置`start`開始,將等于`length`的字節數寫入數組的輸出流中 ### 示例:`BufferedOutputStream`將數據寫入文件 ```java import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main { public static void main(String[] args) { String data = "This is a line of text inside the file"; try { // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates a BufferedOutputStream BufferedOutputStream output = new BufferedOutputStream(file); byte[] array = data.getBytes(); // Writes data to the output stream output.write(array); output.close(); } catch (Exception e) { e.getStackTrace(); } } } ``` 在上面的示例中,我們創建了一個名為`output`和`FileOutputStream`的緩沖輸出流。 輸出流與文件`output.txt`鏈接。 ```java FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file); ``` 要將數據寫入文件,我們使用了`write()`方法。 在這里,當我們運行程序時,`output.txt`文件填充了以下內容。 ```java This is a line of text inside the file. ``` **注意**:程序中使用的`getBytes()`方法將字符串轉換為字節數組。 * * * ## `flush()`方法 要清除內部緩沖區,我們可以使用`flush()`方法。 此方法強制輸出流將緩沖區中存在的所有數據寫入目標文件。 例如, ```java import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main { public static void main(String[] args) { String data = "This is a demo of the flush method"; try { // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(" flush.txt"); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferedOutputStream(file); // Writes data to the output stream buffer.write(data.getBytes()); // Flushes data to the destination buffer.flush(); System.out.println("Data is flushed to the file."); buffer.close(); } catch(Exception e) { e.getStackTrace(); } } } ``` **輸出** ```java Data is flushed to the file. ``` 當我們運行程序時,文件`flush.txt`充滿了由字符串`data`表示的文本。 * * * ### `close()`方法 要關閉緩沖的輸出流,我們可以使用`close()`方法。 一旦調用了該方法,就無法使用輸出流寫入數據。 要了解更多信息,請訪問 [Java `BufferedOutputStream`(官方 Java 文檔)](https://docs.oracle.com/javase/7/docs/api/java/io/BufferedOutputStream.html "Java BufferedOutputStream (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>

                              哎呀哎呀视频在线观看