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", "")); //널문자 제거 및 한글 출력