2012-10-08 4 views
0

나는 Java IO와 Java NIO의 큰 차이점은 처음에는 버퍼를 만든 후에 만 ​​데이터를 탐색 할 수 있다는 것입니다. (예를 들어 BufferedInputStreamer 객체). 두 번째로 채널에서 읽은 데이터는 버퍼에 직접 저장됩니다.Java IO 버퍼 탐색

누구나 이전 IO 버퍼에서 앞뒤로 탐색하는 방법을 보여주는 코드 스 니펫을 작성하고 새 IO API로 변환 할 수 있습니까?

감사합니다.

+0

모두의 API의 유의 한 차이이며, 단지 그것은 완전히 다른 API와 작업 방법의 1 대 1 번역 할 수 없습니다. –

+0

그리고 '데이터에서 탐색'한다는 것은 누구나 추측 할 수 있습니다. 명확히하십시오. – EJP

+0

Google은 귀하의 친구입니다. -이 dzone artikel과 같은 소재가 있습니다. http://java.dzone.com/articles/java-nio-vs-io – dngfng

답변

0

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();