開心生活站

位置:首頁 > IT科技 > 

io和nio的區別

IT科技3.29W

io和nio的區別如下:

io和nio的區別

1、NIO的創建目的是爲了讓Java程序員可以實現高速I/O而無需編寫自定義的本機代碼。NIO將最耗時的I/O操作(即填充和提取緩衝區)轉移回操作系統,因而可以極大地提高速度。傳統的IO操作屬於阻塞型,嚴重影響程序的運行速度。

2、流與塊的比較。原來的I/O庫(在java.io.*中)與NIO最重要的區別是數據打包和傳輸的方式。正如前面提到的,原來的I/O以流的方式處理數據,而NIO以塊的方式處理數據。面向流的I/O系統一次一個字節地處理數據。一個輸入流產生一個字節的數據,一個輸出流消費一個字節的數據。爲流式數據創建過濾器非常容易。鏈接幾個過濾器,以便每個過濾器只負責單個複雜處理機制的一部分,這樣也是相對簡單的。不利的一面是,面向流的I/O通常相當慢。

3、一個面向塊的I/O系統以塊的形式處理數據。每一個操作都在一步中產生或者消費一個數據塊。按塊處理數據比按(流式的)字節處理數據要快得多。但是面向塊的I/O缺少一些面向流的I/O所具有的優雅性和簡單性。

標籤:IO nio