91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中IO流的詳細介紹

發布時間:2021-07-30 13:39:10 來源:億速云 閱讀:147 作者:chen 欄目:開發技術

這篇文章主要介紹“Java中IO流的詳細介紹”,在日常操作中,相信很多人在Java中IO流的詳細介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java中IO流的詳細介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、Java中IO流分為幾種?

  • 按照流的流向分,可以分為輸入流和輸出流;

  • 按照操作單元分,可以分為字節流和字符流(字節流可以讀寫任何單位的數據,字符流只可以讀寫txt數據);

  • 按照流的角色分,可以分為節點流和處理流;

二、IO中flush()和close()的區別

close()方法具備刷新功能,在關閉流之前就會先刷新緩沖區,將緩沖區的字節全部刷新到文件上,在關閉流。(close()方法包含一次flush()方法)

flush()方法可以刷新,并且刷新之后可以繼續寫,而close()方法刷新之后就不能繼續寫了。

三、BIO、NIO、AIO有什么區別?

簡答:

  • BIO:Block IO 同步阻塞式IO,就是我們平時使用的傳統IO,特點是模式簡單使用方便,但是并發處理能力低;

  • NIO:Non IO 同步非阻塞IO,傳統IO的升級,客戶端與服務端通過Channel(通道)通訊,實現了多路復用;

  • AIO:Asynchronous IO 異步非阻塞IO,異步IO的操作基于事件和回調機制。

詳細回答:

  • BIO (Blocking I/O): 同步阻塞I/O模式,數據的讀取寫入必須阻塞在一個線程內等待其完成。在活動連接數不是特別高(小于單機1000)的情況下,這種模型是比較不錯的,可以讓每一個連接專注于自己的 I/O 并且編程模型簡單,也不用過多考慮系統的過載、限流等問題。線程池本身就是一個天然的漏斗,可以緩沖一些系統處理不了的連接或請求。但是,當面對十萬甚至百萬級連接的時候,傳統的 BIO 模型是無能為力的。因此,我們需要一種更高效的 I/O 處理模型來應對更高的并發量。

  • NIO (New I/O): NIO是一種同步非阻塞的I/O模型,在Java 1.4 中引入了NIO框架,對應 java.nio 包,提供了 Channel , Selector,Buffer等抽象。NIO中的N可以理解為Non-blocking,不單純是New。它支持面向緩沖的,基于通道的I/O操作方法。 NIO提供了與傳統BIO模型中的 Socket 和 ServerSocket 相對應的 SocketChannel 和 ServerSocketChannel 兩種不同的套接字通道實現,兩種通道都支持阻塞和非阻塞兩種模式。阻塞模式使用就像傳統中的支持一樣,比較簡單,但是性能和可靠性都不好;非阻塞模式正好與之相反。對于低負載、低并發的應用程序,可以使用同步阻塞I/O來提升開發速率和更好的維護性;對于高負載、高并發的(網絡)應用,應使用 NIO 的非阻塞模式來開發

  • AIO (Asynchronous I/O): AIO 也就是 NIO 2。在 Java 7 中引入了 NIO 的改進版 NIO 2,它是異步非阻塞的IO模型。異步 IO 是基于事件和回調機制實現的,也就是應用操作之后會直接返回,不會堵塞在那里,當后臺處理完成,操作系統會通知相應的線程進行后續的操作。AIO 是異步IO的縮寫,雖然 NIO 在網絡操作中,提供了非阻塞的方法,但是 NIO 的 IO 行為還是同步的。對于 NIO 來說,我們的業務線程是在 IO 操作準備好時,得到通知,接著就由這個線程自行進行 IO 操作,IO操作本身是同步的。查閱網上相關資料,我發現就目前來說 AIO 的應用還不是很廣泛,Netty 之前也嘗試使用過 AIO,不過又放棄了。

四、Files的常用方法有哪些?

  • Files.exist():檢測文件路徑是否存在

  • Files.createFiles():創建文件

  • Files.createDirectory():創建文件夾

  • Files.delete():刪除一個文件或目錄

  • Files.copy():復雜文件

  • Files.move():移動文件

  • Files.size():查看文件個數

  • Files.read():讀取文件

  • Files.write():寫入文件

到此,關于“Java中IO流的詳細介紹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元江| 西宁市| 兴宁市| 延川县| 石棉县| 大竹县| 靖安县| 武安市| 江油市| 梅河口市| 巴林左旗| 揭东县| 印江| 武川县| 珠海市| 运城市| 武平县| 马公市| 襄汾县| 平江县| 宜君县| 外汇| 平遥县| 九台市| 海城市| 东明县| 郧西县| 方正县| 台南市| 彭州市| 仪征市| 阜阳市| 刚察县| 咸丰县| 滦平县| 聂荣县| 沂水县| 萨嘎县| 庄河市| 高要市| 潼关县|