[Java NIO 사례]FileChannel 데이터 전송
1605 단어 nio
자바 NIO 채널 에서 채널 로 의 전송
FileChannel 의 transferFrom 와 transferTo 방법 은 데 이 터 를 FileChannel(파일 쓰기)에 편리 하 게 전송 하거나 FileChannel 의 데 이 터 를 읽 을 수 있 습 니 다(파일 읽 기).
이 두 가지 방법 은 간단 한 순환 읽 기-쓰기 보다 효율 적 입 니 다.많은 운영 체제 들 이 원본 채널 의 데 이 터 를 파일 시스템 캐 시 에 직접 전송 할 수 있 기 때문에 이 데 이 터 를 진정 으로 복사 할 필요 가 없다.
transferFrom
이 방법 은 ReadableByteChannel 의 데 이 터 를 읽 고 FileChannel 로 전송 할 수 있 습 니 다.
FileChannel fromChannel = new RandomAccessFile("from.txt", "r").getChannel();
FileChannel toChannel = new RandomAccessFile("to.txt", "rw").getChannel();
long position = 0;
long count = fromChannel.size();
toChannel.transferFrom(fromChannel, position, count);
from Channel 이 현재 제공 할 수 있 는 데이터 양 이 지정 한 데이터 양(count)보다 적 으 면 제공 할 수 있 는 데이터 만 전송 합 니 다.예 를 들 어 from Channel 이 SocketChannel 이 라면 현재 준 비 된 데이터 만 toChannel 로 전 송 됩 니 다.나중에 더 많은 데이터 가 from Channel 에 들 어가 더 라 도.
transferTo
이 방법 은 FileChannel 의 데 이 터 를 읽 고 WritableByteChannel 로 전송 할 수 있 습 니 다.
FileChannel fromChannel = new RandomAccessFile("from.txt", "r").getChannel();
FileChannel toChannel = new RandomAccessFile("to.txt", "rw").getChannel();
long position = 0;
long count = fromChannel.size();
fromChannel.transferTo(position, count, toChannel);
이 방법 은 transferFrom 와 비슷 하여 from Channel 과 toChannel 을 바 꾸 었 다.
transferFrom 와 마찬가지 로 from Channel 이 현재 제공 할 수 있 는 데이터 양 이 지정 한 데이터 양(count)보다 적 으 면 제공 할 수 있 는 데이터 만 전송 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java가 NIO 패키지를 사용하여 Socket 통신을 구현하는 인스턴스 코드앞의 몇 편의 문장은java를 사용하는 것을 소개하였다.io와java.net 라이브러리에서 이루어진 Socket 통신, 다음은 자바를 사용하는 것을 소개합니다.nio 라이브러리에서 구현된 Socket java.nio...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.