2 개의 인터페이스 사이에 래퍼를 구현해야하는데 변경할 수 없습니다. 기본적으로 래퍼는 자바 스타일의 스트리밍 파일 접근을 표준 C 스타일의 fopen/fread/fwrite/file 접근 (자바로 구현)으로 변환해야한다.Java, 파일 스트림을 랜덤 액세스 파일로 변환
래퍼는 호출자가 필요로하는 임의 파일 액세스 방법을 구현해야합니다. 즉, 열기/읽기/쓰기/닫기/찾기/플러시/크기/잘라 내기를 의미합니다. 래퍼는 호출자에게 피드하기 위해 표준 자바 파일 스트리밍 메소드 세트를 호출해야하고, 호출 수신자는 입력 스트림 및 출력 스트림을 제공합니다.
java.io.RandomAccessFile을 보았습니다. C 스타일을 Java 스트림 스타일로 변환했는데, 뭔가 뒤집혀야합니다. 가장 어려운 부분은 seek()입니다. 거기에 좋은 (효율적인) 방법이 있습니까.
당신은 메모리 버퍼에 전체 스트림 데이터를 전송할 수있는 ... [채널 유틸리티 클래스를 사용하여 쉽게 달성 할 수있다 ('ByteArrayOutputStream'가 자동으로 성장할 것이다'toByteArray' 반환합니다 기본'byte []') 다음에 무작위 접근을 할 수있다. 그러나 이것은 해킹 된 해결책이다. – oldrinb
이 링크는 도움을 줄 수 있습니다. [http://www.coderanch.com/t/277378/Streams/java/InputStream-RandomAccessFile-best-way](http://www.coderanch.com/t/277378/Streams/java/InputStream-RandomAccessFile- 최선의 방법) –
Pramod는 나에게 매우 유용한 첫 번째 코멘트를주었습니다. Pramod, 내가 대답 할 수 있도록 답장을 대신 작성 하시겠습니까? 감사. – brewphone