Java NIO 系列教程
原文地址 作者:Jakob Jenkov 譯者:郭蕾 校對:方騰飛
Java NIO(New IO)是一個可以替代標準Java IO API的IO API(從Java 1.4開始),Java NIO提供了與標準IO不同的IO工作方式。
Java NIO: Channels and Buffers(通道和緩衝區)
標準的IO基於位元組流和字元流進行操作的,而NIO是基於通道(Channel)和緩衝區(Buffer)進行操作,資料總是從通道讀取到緩衝區中,或者從緩衝區寫入到通道中。
Java NIO: Non-blocking IO(非阻塞IO)
Java NIO可以讓你非阻塞的使用IO,例如:當執行緒從通道讀取資料到緩衝區時,執行緒還是可以進行其他事情。當資料被寫入到緩衝區時,執行緒可以繼續處理它。從緩衝區寫入通道也類似。
Java NIO: Selectors(選擇器)
Java NIO引入了選擇器的概念,選擇器用於監聽多個通道的事件(比如:連線開啟,資料到達)。因此,單個的執行緒可以監聽多個數據通道。
下面是Java NIO系列文章的目錄:Java NIO Tutorial
相關推薦
【轉】【NIO】Java NIO系列教程
http://ifeve.com/overview/ http://ifeve.com/java-nio-all/ https://www.cnblogs.com/duanxz/p/6759689.html 原文連結 作者:Jako
Java NIO系列教程(十二) Java NIO 與 IO
Java NIO系列教程(十二) Java NIO 與 IO 當學習了 Java NIO 和 IO 的 API 後,一個問題馬上湧入腦海: 我應該何時使用 IO,何時使用 NIO 呢?在本文中,我會盡量清晰地解析 Java NIO 和 IO 的差異、它們的使用場景,以及它們如何影響您的程式碼設計。 下表
Java NIO系列教程(一) Java NIO 概述
Java NIO 由以下幾個核心部分組成: Channels Buffers Selectors 雖然Java NIO 中除此之外還有很多類和元件,但在我看來,Channel,Buffer 和 Selector 構成了核心的API。其它元件,如P
Java NIO系列教程(二) Channel
Java NIO的通道類似流,但又有些不同: 既可以從通道中讀取資料,又可以寫資料到通道。但流的讀寫通常是單向的。 通道可以非同步地讀寫。 通道中的資料總是要先讀到一個Buffer,或者總是要從一個Buffer中寫入。 正如上面所說,從通道讀取資
java nio系列教程(2)---channel(通道介紹)和使用
大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油 package com.zzh.buffer; import com.google.common.collect.Lists; import org.junit.jupiter.api.Test; imp
java nio 系列教程(1)----buffer介紹和使用方法
大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油 package com.zzh.buffer; import org.junit.jupiter.api.Test; import java.nio.ByteBuffer; /** * 一.緩衝區(b
Java NIO系列教程(十 五)Java NIO Path
原文連結 譯者:章筱虎 Path介面是java NIO2的一部分。首次在java 7中引入。Path介面在java.nio.file包下,所以全稱是java.nio.file.Path。 java中的Path表示檔案系統的路徑。可以指向檔案或資料夾。也有相對路徑和絕對路徑之分。絕對路徑表示從
Java NIO系列教程(四) Scatter/Gather
作者:Jakob Jenkov 譯者:郭蕾 Java NIO開始支援scatter/gather,scatter/gather用於描述從Channel(譯者注:Channel在中文經常翻譯為通道)中讀取或者寫入到Channel的操作。 分散(scatter)從Channel中讀取是
Java NIO系列教程(七) FileChannel
原文連結 作者:Jakob Jenkov 譯者:周泰 校對:丁一 Java NIO中的FileChannel是一個連線到檔案的通道。可以通過檔案通道讀寫檔案。 FileChannel無法設定為非阻塞模式,它總是執行在阻塞模式下。 開啟FileChannel 在使用F
Java NIO系列教程(九) ServerSocketChannel
原文連結 作者:Jakob Jenkov 譯者:鄭玉婷 校對:丁一 Java NIO中的 ServerSocketChannel 是一個可以監聽新進來的TCP連線的通道, 就像標準IO中的ServerSocket一樣。ServerSocketChannel類在 jav
Java NIO系列教程(十一) Pipe
原文連結 作者:Jakob Jenkov 譯者:黃忠 校對:丁一 Java NIO 管道是2個執行緒之間的單向資料連線。Pipe有一個source通道和一個sink通道。資料會被寫到sink通道,從source通道讀取。 這裡是Pipe原理的圖示: 建立管道 通
Java NIO系列教程(五) 通道之間的資料傳輸
作者:Jakob Jenkov 譯者:郭蕾 校對:周泰 在Java NIO中,如果兩個通道中有一個是FileChannel,那你可以直接將資料從一個channel(譯者注:channel中文常譯作通道)傳輸到另外一個channel。 transferFrom() FileChan
Java NIO系列教程(十) Java NIO DatagramChannel
原文連結 作者:Jakob Jenkov 譯者:鄭玉婷 校對:丁一 Java NIO中的DatagramChannel是一個能收發UDP包的通道。因為UDP是無連線的網路協議,所以不能像其它通道那樣讀取和寫入。它傳送和接收的是資料包。 開啟 DatagramChannel
Java NIO系列教程(十二) Java NIO與IO
作者:Jakob Jenkov 譯者:郭蕾 校對:方騰飛 當學習了Java NIO和IO的API後,一個問題馬上湧入腦海: 我應該何時使用IO,何時使用NIO呢?在本文中,我會盡量清晰地解析Java NIO和IO的差異、它們的使用場景,以及它們如何影響您的程式碼設計。 Java
Java NIO系列教程(三) Buffer
原文連結 作者:Jakob Jenkov 譯者:airu 校對:丁一 Java NIO中的Buffer用於和NIO通道進行互動。如你所知,資料是從通道讀入緩衝區,從緩衝區寫入到通道中的。 緩衝區本質上是一塊可以寫入資料,然後可以從中讀取資料的記憶體。這塊記憶體被包裝成N
Java NIO系列教程(六) Selector
原文連結 作者:Jakob Jenkov 譯者:浪跡v 校對:丁一 Selector(選擇器)是Java NIO中能夠檢測一到多個NIO通道,並能夠知曉通道是否為諸如讀寫事件做好準備的元件。這樣,一個單獨的執行緒可以管理多個channel,從而管理多個網路連線。 下面是本文所涉及到的主題列表:
Java NIO系列教程(八) SocketChannel
原文連結 作者:Jakob Jenkov 譯者:鄭玉婷 校對:丁一 Java NIO中的SocketChannel是一個連線到TCP網路套接字的通道。可以通過以下2種方式建立SocketChannel: 開啟一個SocketChannel並連線到網際網路上的某臺伺服
Java NIO 系列教程
原文地址 作者:Jakob Jenkov 譯者:郭蕾 校對:方騰飛 Java NIO(New IO)是一個可以替代標準Java IO API的IO API(從Java 1.4開始),Java NIO提供了與標準IO不同的IO工作方式。 Java NIO: Channels and B
Java NIO系列教程(一)java NIO簡介
這個系列的文章,我們開始玩一玩IO方面的知識,對於IO和NIO,我們經常會接觸到,瞭解他們的基本內容,對於我們的工作會有特別大的幫助。這篇博文我們僅僅是介紹IO和NIO的基本概念,以及一些關鍵詞。 基本概念 IO是主存和外部裝置(硬碟、終端和網路)進行資
Java NIO系列教程(一) Java NIO 簡介
Java NIO系列教程(一) Java NIO 概述 原文連結 作者:Jakob Jenkov 譯者:airu 校對:丁一 Java NIO 由以下幾個核心部分組成: Channels Buffers Selectors 雖