簡述NIO和IO的區(qū)別?
NIO是以塊的方式處理數(shù)據(jù),但是IO是以最基礎(chǔ)的字節(jié)流的形式去寫入和讀出的。所以在效率上的話,肯定是NIO效率比IO效率會高出很多。
NIO不在是和IO一樣用OutputStream和InputStream 輸入流的形式來進(jìn)行處理數(shù)據(jù)的,但是又是基于這種流的形式,而是采用了通道和緩沖區(qū)的形式來進(jìn)行處理數(shù)據(jù)的。
還有一點(diǎn)就是NIO的通道是可以雙向的,但是IO中的流只能是單向的。
還有就是NIO的緩沖區(qū)(其實(shí)也就是一個字節(jié)數(shù)組)還可以進(jìn)行分片,可以建立只讀緩沖區(qū)、直接緩沖區(qū)和間接緩沖區(qū),只讀緩沖區(qū)很明顯就是字面意思,直接緩沖區(qū)是為加快 I/O 速度,而以一種特殊的方式分配其內(nèi)存的緩沖區(qū)。
補(bǔ)充一點(diǎn):NIO比傳統(tǒng)的BIO核心區(qū)別就是,NIO采用的是多路復(fù)用的IO模型,普通的IO用的是阻塞的IO模型,兩個之間的效率肯定是多路復(fù)用效率更高