개발자의 길

[java] 파일 내용 뒤에서 읽기- 원하는 위치에서 본문

4. JAVA

[java] 파일 내용 뒤에서 읽기- 원하는 위치에서

자르르 2017. 2. 9. 10:04


일단 파일의 임의의 위치에 접근하려면 RandomAccessFile 라는 클래스를 사용합니다.
그리고 마지막 한 줄을 가져오려면 \n 문자를 뒤로부터 검색해서
발견되는 위치 +1 부터 readLine 해주면 됩니다.
 
예문)
  RandomAccessFile file = new RandomAccessFile("A.txt","r");
  long fileSize = file.length();
  long pos = fileSize - 1; //뒤로 부터
  while(true) {
   file.seek(pos); //파일 포인터 이동
   if(file.readByte()=='\n') { //해당 위치의 바이트를 읽어 \n 문자와 같은지 검사
    break;  //같으면 멈춤
   }
   pos--;  //포인터 위치값 감소 (앞으로)
  }
  file.seek(pos+1);  //\n 문자를 찾은 다음으로 파일 포인터 이동
  String line = file.readLine();
 
저렇게 읽어서 출력해 보니 한글이 안보이는 군요.
한글로 출력해야 한다면 readLine 대신
 
  byte[] buff = new byte[20];  //라인을 읽어들일 수 있는 충분한 크기로
  file.read(buff);  //바이트 배열로 읽어오기
  System.out.println(new String(buff).replace("\0", ""));  //널문자 제거 및 한글 출력




이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공유하기 링크
Comments