첫 번째 데이터 블록이 ASCII 메타 데이터 인 사용자 지정 이미지 파일이 있습니다. Java로 파일의 ASCII 메타 데이터 부분을 읽을 수 있어야하며 끝나는시기와 다른 인코딩의 '원시 이미지 데이터'가 시작될 때를 알아야합니다.어떻게 ASCII 코드와 Java의 다른 인코딩 파일을 깨끗하게 읽을 수 있습니까?
나는 모든 파일을 바이트 []로 읽는 것을 생각하고 있었다. 그리고 나서 어떻게 든 바이트를 읽어서 아스키 메타 데이터 섹션의 끝에 도달 할 때까지 아스키로 변환한다. 나는이 자료를 저장할 것이다. 그런 다음 원시 이진 데이터를 다른 순서대로 다시 배열 할 수 있습니다 (읽기 필요 없음). 그러나,이 일을 생각할 수있는 유일한 방법은 바이트 단위로 ascii 항목을 읽고 새 줄을 찾은 다음 줄 바꿈 전에 모든 내용을 연결하고 그 줄의 시작을 나타내는 태그인지 확인하는 것입니다. 미가공 이미지 데이터. 그러나 readLine()을 사용하여 파일의 ascii 부분을 읽은 다음 새 이미지 판독기에서 파일을 다시 열 필요없이 원시 이미지 바이너리로 즉시 시작할 수있는 더 좋은 방법이 있어야하며 다른 독자는 '이미지 시작'태그를 발견했습니다.
아이디어가 있으십니까?
내 "이미지 시작"태그가 실제로 다음과 같은 경우이 작업을 수행 할 수 있습니다. {END} 5 바이트가됩니다. 이 메서드는 여러 바이트 인 문자열을 검색 할 수 있습니까? – sepiroth
예, 물론입니다. 검색이 더 복잡해집니다. 위키피디아의 문자열 검색 알고리즘 페이지를 보거나 Scanner 클래스를 사용하십시오. –
@ 마이클 : 나는 스캐너 경로 (Well, BufferedReader, 어쨌든)를 시도하고있다. BufferedReader.readLine()을 끈 상태에서 FileInputStream을 가져 오는 데 문제가 있습니다. 첫 번째 행을 읽은 후 다음 바이트를 가져 오지만 다음 바이트는 올바르지 않습니다. 뭐가 잘못 됐는지 생각 해봐? – sepiroth