자바 NIO 채널 (2)

자바 NIO 채널 흐름은 유사하지만 다른이 있습니다 :

  • 채널 중 하나 채널에서 데이터를 읽고, 채널에 데이터를 쓸 수있는 양방향입니다. 쓰기 스트림은 일반적으로 단방향이다.
  • 비동기 읽기 및 채널을 작성합니다.
  • 데이터 채널은 먼저 버퍼를 읽거나 항상 버퍼의 서면 항상있다.

채널 구현

다음은 자바 NIO에서 가장 중요한 구절의 실현입니다 :

  • 읽기 및 파일에서 데이터를 쓸되는 FileChannel.
  • UDP DatagramChannel 데이터 읽기 및 네트워크에 데이터를 기록 할 수 있습니다.
  • SocketChannel에 TCP 읽고 네트워크에 데이터를 기록 할 수 있습니다.
  • ServerSocketChannel을은 웹 서버와 새로 들어오는 TCP 연결을 수신 할 수 있습니다. 될 각 새 들어오는 연결을 SocketChannel에를 만듭니다.

채널 예

여기서 버퍼되는 FileChannel 예에 판독 데이터이다 :

RandomAccessFile의 aFile 변수 = RandomAccessFile의 새로운 ( "데이터 / 니오 data.txt로", "RW"); // 지정된 위치 및 파일 항목 형식 액세스 
= ()되는 FileChannel inChannel aFile.getChannel;
의 ByteBuffer BUF = ByteBuffer.allocate (48)

지능 = inChannel.read bytesRead (BUF);
그동안 (bytesRead = -1!) {
에서 System.out.println ( "읽기"+ bytesRead)
buf.flip ();
그동안 (buf.hasRemaining ()) {
System.out에. 인쇄 (샤아 buf.get ());
}
buf.clear ()
; bytesRead = inChannel.read (BUF)
}
aFile.close ();

buf.flip () 버퍼에 최초의 판독 데이터를 상기 호출 다음 상기 버퍼로부터 데이터를 판독 한 후, 버퍼를 역방향.

 

추천

출처www.cnblogs.com/chen970826/p/10938004.html