<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國際加速解決方案。 廣告
                # NIO 教程 > 原文: [https://howtodoinjava.com/java-nio-tutorials/](https://howtodoinjava.com/java-nio-tutorials/) Java NIO(新 IO)是 Java 的替代 IO API(來自 Java 1.4),意味著可以替代標準 [Java IO](http://tutorials.jenkov.com/java-io/index.html) API。 與標準 IO API 相比,Java NIO 提供了另一種使用 IO 的方式。 在此頁面中,我將列出此博客中與 NIO 相關的所有可用帖子。 ![java nio](https://img.kancloud.cn/1b/c3/1bc34606452b877ebc40de91c4793475_147x103.png) ## 學習 NIO 的先決條件 #### [Java I/O 在較低級別內部如何工作?](//howtodoinjava.com/java/io/how-java-io-works-internally-at-lower-level/ "How Java I/O Works Internally at Lower Level?") 這篇博客文章主要討論與 I/O 相關的事物在較低級別的工作方式。 這篇文章供那些想知道如何在機器級別映射 [**Java I/O**](//howtodoinjava.com "java io") 操作的讀者使用; 以及您的應用程序在運行時,硬件在所有時間內的所有工作。 我假設您熟悉基本的 IO 操作,例如讀取文件,通過 Java I/O API 寫入文件; 因為那超出了這篇文章的范圍。 #### [標準 IO 和 NIO 之間的差異](//howtodoinjava.com/java/io/difference-between-standard-io-and-nio/ "Difference between standard IO and NIO") 在本教程中,我將專注于確定最明顯的區別,在決定在下一個項目中使用哪個區別之前,您必須知道這些區別。 ### NIO 基礎知識 #### [**如何在 Java NIO 中定義路徑**](//howtodoinjava.com/java-7/nio/how-to-define-path-in-java-nio/ "How to define Path in java NIO") 如果您的應用程序使用 NIO,則應了解有關此類中可用特性的更多信息。 在本教程中,我列出了在 NIO 中創建`Path`的 6 種方法。 #### [NIO 緩沖區](//howtodoinjava.com/java-7/nio/java-nio-2-0-working-with-buffers/ "Java NIO 2.0 : Working With Buffers") [**緩沖區**](https://docs.oracle.com/javase/7/docs/api/java/nio/Buffer.html "Buffer")類是構建[**`java.nio`**](//howtodoinjava.com/category/new-jdk-features/java-7-features/nio/ "NIO Tutorials")的基礎。 在本教程中,我們將仔細研究緩沖區,發現各種類型,并學習如何使用它們。 然后,我們將了解`java.nio`緩沖區與`java.nio.channels`的通道類之間的關系。 #### [NIO 通道](//howtodoinjava.com/java-7/nio/java-nio-2-0-channels/ "Java NIO 2.0 : Channels") 通道是繼[**緩沖區**](//howtodoinjava.com/java-7/nio/java-nio-2-0-working-with-buffers/ "Java NIO 2.0 : Working With Buffers")之后的`java.nio`的第二項重大創新,我們在我之前的教程中已詳細了解到。 通道提供與 I/O 服務的直接連接。 **通道是一種在字節緩沖區和通道另一端的實體(通常是文件或套接字)之間有效傳輸數據的介質。** 通常,通道與操作系統文件描述符具有一對一的關系。 通道類提供了維持平臺獨立性所需的抽象,但仍可以對現代操作系統的本機 I/O 能力進行建模。 通道是網關,通過它可以以最小的開銷訪問操作系統的本機 I/O 服務,而緩沖區是通道用來發送和接收數據的內部端點。 ### 如何在應用程序中使用 NIO #### [使用 NIO 逐行讀取文件](//howtodoinjava.com/java8/read-file-line-by-line-in-java-8-streams-of-lines-example/ "Read file line by line in java 8: Streams of Lines Example") 在本文中,我將舉例說明一個非常有用的日常編程任務,即**使用 Java IO 逐行讀取**文件并執行一些行操作。 在繼續之前,請允許我提及本文中所有示例中將要閱讀的文件內容。 我將逐行讀取文件的內容,并檢查是否有任何行包含單詞`"password"`,然后進行打印。 #### [**3 種使用 Java NIO 讀取文件的方法**](//howtodoinjava.com/java-7/nio/3-ways-to-read-files-using-java-nio/ "3 ways to read files using Java NIO") 在這篇文章中,我展示了幾種從文件系統讀取文件的方法。 #### [如何在通道之間傳輸數據?](//howtodoinjava.com/java-7/nio/java-nio-2-0-how-to-transfer-copy-data-between-channels/ "Java NIO : How to transfer data between channels?") 與通常在輸入源和輸出目標之間發生 IO 的普通 Java 應用程序一樣,在 NIO 中,您也可能需要非常頻繁地將數據從一個通道傳輸到另一通道。 文件數據從一個地方到另一個地方的批量傳輸非常普遍,以至于`FileChannel`類添加了兩種優化方法,以使其效率更高。 讓我們了解這些方法。 #### [內存映射文件和`MappedByteBuffer`](//howtodoinjava.com/java-7/nio/java-nio-2-0-memory-mapped-files-mappedbytebuffer-tutorial/ "Java NIO 2.0 : Memory-Mapped Files | MappedByteBuffer Tutorial") 內存映射的 I/O 使用文件系統來建立從用戶空間直接到適用文件系統頁面的虛擬內存映射。 使用內存映射文件,您可以假裝整個文件都在內存中,并且可以通過將其視為一個非常大的數組來訪問它。 這種方法極大地簡化了您為修改文件而編寫的代碼。 #### [分散/收集或向量 IO](//howtodoinjava.com/2015/01/15/java-nio-2-0-scatter-gather-or-vectored-io/ "Java NIO 2.0 : Scatter/Gather or Vectored IO") **從通道讀取的散射是將數據讀取到多個緩沖區中的讀取操作**。因此,通道將來自通道的數據**分散**到多個緩沖區中。對通道的聚集寫入是一種將來自多個緩沖區的數據寫入單個通道的寫入操作。因此,通道將來自多個緩沖器的數據**收集**到一個通道中。 在需要分別處理傳輸數據的各個部分的情況下,分散/收集可能非常有用。 ## 參考: [http://docs.oracle.com/javase/tutorial/essential/io/fileio.html](https://docs.oracle.com/javase/tutorial/essential/io/fileio.html)
                  <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>

                              哎呀哎呀视频在线观看