0
我從here讀到,與Java IO和Java NIO的最大區別在於,首先我們只能在創建緩衝區後才能從數據導航(我認爲使用例如BufferedInputStreamer對象)。 第二個從通道讀取的數據直接存儲在緩衝區中。Java IO緩衝區導航
請問任何人都可以編寫一些代碼片斷,展示如何從舊IO緩衝區來回導航,並使用新的IO API進行相同的轉換?
謝謝。
我從here讀到,與Java IO和Java NIO的最大區別在於,首先我們只能在創建緩衝區後才能從數據導航(我認爲使用例如BufferedInputStreamer對象)。 第二個從通道讀取的數據直接存儲在緩衝區中。Java IO緩衝區導航
請問任何人都可以編寫一些代碼片斷,展示如何從舊IO緩衝區來回導航,並使用新的IO API進行相同的轉換?
謝謝。
跳過1024,讀取下一個1024,並回到0的示例;
NIO:
int i=1024;
Path p = Paths.get("./","file.txt");
SeekableByteChannel sbc = Files.newByteChannel(p, StandardOpenOption.READ);
sbc.position((long)i);
ByteBuffer bf = ByteBuffer.allocate(i);
sbc.read(bf);
byte[] b = bf.array();
sbc.position(0L);
IO:
int i=1024;
File f = new File("./file.txt");
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
bis.mark(i*2);
bis.skip((long)i);
byte[] b = new byte[i];
bis.read(byte[] b);
bis.reset();
兩個阿比的是顯著不同,並且不能只被翻譯1比1。這是一個完全不同的API和工作的方法。 –
你的意思是「從數據導航」是任何人的猜測。請澄清。 – EJP
谷歌是你的朋友 - 有很多材料 - 比如這個dzone artikel http://java.dzone.com/articles/java-nio-vs-io – dngfng