2011-11-16 5 views
0

나는 초보자이고 나는 변수 크기의 기록을 갖는 파일을 가지고; 행 당 두 개의 필드가 즉 하나는 각 레코드에 대한 가변 크기 인 문자열가 공백으로 7-15 숫자 키를 누른 이어진다. 독서 기록은

나는 나의 버퍼에 전용 페이지 크기의 바이트를 읽고 다음을 처리하려합니다.

문제는 내가 Java.RanomAccessFile를 사용하고 방법을 찾아 사용하는 경우 다음 내 버퍼에 그 1024 바이트를 읽어 readFully 메서드 중 한쪽을 사용, 특정 라인에 도달하는 것입니다. 바이트를 int로 변환하고 바이트를 문자열로 변환하는 함수를 작성했지만 문제는 내가 얼마나 많은 바이트가 7-15 자리를 형성하고 얼마나 많은 바이트가 내 문자열을 형성하는지 알지 못한다는 것입니다.

답변

0

당신이 행을 말할 때, 당신은 각 행을 의미합니까 사이에 행 단락이있다? 이 경우 BufferedReader의 readline() 메소드와 같은 것을 사용할 수 있습니다. 줄 분리 기호없이 1 줄의 문자열을 얻을 수 있습니다.

+0

없음 문제는 내가 읽고 싶은 15기가바이트 데이터를 가지고있다. 라인별로 읽는다면 시간이 걸릴 것입니다. 그래서 내 파일에서 페이지별로 페이지를 읽고 싶습니다. 또한 레코드가 페이지 크기에 어떻게 맞는지 잘 모르겠습니다. 페이지가 가득 차게 될 때까지 정의 된 페이지 크기로 내 레코드를 읽으려고하는 코드를 작성해야합니다. 레코드를 더 추가하면 페이지 크기를 초과하는 경우 해당 레코드를 파일에서 가져 오지 마십시오. 고맙습니다! – Basmah

+0

그런 경우 총알을 물고 버퍼로 읽은 다음 전체 행을 읽었는지 확인해야합니다. 그렇지 않은 경우 전체 행을 읽을 때까지 동일한 버퍼 크기를 더 읽으십시오. – Pavan