io和nio的區(qū)別如下:
1、NIO的創(chuàng)建目的是為了讓Java程序員可以實現(xiàn)高速I/O而無需編寫自定義的本機代碼。NIO將最耗時的I/O操作(即填充和提取緩沖區(qū))轉(zhuǎn)移回操作系統(tǒng),因而可以極大地提高速度。傳統(tǒng)的IO操作屬于阻塞型,嚴重影響程序的運行速度。
2、流與塊的比較。原來的I/O庫(在java.io.*中)與NIO最重要的區(qū)別是數(shù)據(jù)打包和傳輸?shù)姆绞健U缜懊嫣岬降?,原來的I/O以流的方式處理數(shù)據(jù),而NIO以塊的方式處理數(shù)據(jù)。面向流的I/O系統(tǒng)一次一個字節(jié)地處理數(shù)據(jù)。一個輸入流產(chǎn)生一個字節(jié)的數(shù)據(jù),一個輸出流消費一個字節(jié)的數(shù)據(jù)。為流式數(shù)據(jù)創(chuàng)建過濾器非常容易。鏈接幾個過濾器,以便每個過濾器只負責單個復(fù)雜處理機制的一部分,這樣也是相對簡單的。不利的一面是,面向流的I/O通常相當慢。
3、一個面向塊的I/O系統(tǒng)以塊的形式處理數(shù)據(jù)。每一個操作都在一步中產(chǎn)生或者消費一個數(shù)據(jù)塊。按塊處理數(shù)據(jù)比按(流式的)字節(jié)處理數(shù)據(jù)要快得多。但是面向塊的I/O缺少一些面向流的I/O所具有的優(yōu)雅性和簡單性。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com