Java에서 채널 기반 I / O와 스트림 기반 I / O의 차이점은 무엇입니까?


21

스트림 기반 입력과 채널 기반 입력의 차이점은 무엇입니까? Java API는 "java.io"패키지의 스트림 기반과 "java.nio"패키지의 채널 기반을 모두 제공합니다. 둘 중 어느 것이 성능 향상과 런타임 오류 감소에서 더 좋습니까?


Stack Overflow에서 'nio'태그 위키 를 확인 했 습니까? "NIO는 'New I / O'의 약자입니다. java.nio 패키지의 JDK 1.4에 도입되었습니다. 여러 요소로 구성됩니다 ...."
gnat

1
이것은 10 년 전의 좋은 질문입니다 ... 짧은 대답은 그것이 달려 있다는 것입니다. 어떤 기술을 언제 사용해야하는지에 대한 광범위한 문서가 많이 있습니다. 긴 답변 Google에는 알아야 할 모든 것이 있습니다.

이것이 좋은 게이트웨이 질문으로 작용한다고 생각합니다. OP는 오늘 운이 좋은 10,000 중 하나입니다 .
Gary Rowe

stackoverflow.com/questions/2810156/concepts-channel-vs-stream 에 따르면 채널은 메시지 지향적이지만 스트림은 바이트 지향적이며 아마도 메시지를 나누는 방법을 모릅니다. 또 다른 차이점은 스트림은 그렇지 않지만 채널은 메시지를 저장한다는 것입니다.
inf3rno

답변:


13

좋은 개요는 이 Oracle 블로그 게시물 을 참조하십시오.

또한 Java 7의 NIO.2 API를 무시하지 마십시오!

성능 등의 측면에서 대답은 "의존적"입니다. 그것은 당신의 I / O의 특성에 달려 있습니다. 예를 들어 크기, 모양, 네트워크 또는 디스크 또는 메모리 또는 ....


8
다음은 아카이브에 대한 링크입니다. web.archive.org/web/20140528182031/https://blogs.oracle.com/slc/…- 이것이 바로 btw
piegames
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.