자바 7 에서도 C언어의 fseek 와 lseek같은 기능을 제공한다.
C 언어에서 fseek 같은 경우 파일 포인터를 사용하여 파일의 위치로 접근할수있다.
자바에서도 동일한 기능을 할수있는 RandomAccessFile 클래스를 사용하면 가능하다.
public class RandomAccessFileDemo
{
public static void main(String[] args)
{
try
{
// create a new RandomAccessFile with filename test
RandomAccessFile raf = new RandomAccessFile("test.txt", "r");
// 모드 값은 rw,w,r 과 같이 다양하게 선택 가능.
raf.seek(0);// 0 이면 처음부터
// print the line
String line = "";
while((line = raf.readLine()) != null)
{
System.out.println(line);
}
System.out.println("filePt: "+raf.getFilePointer());
raf.skipBytes(2);//엔터 값에 대해 skip 해주어야 다음 라인을 읽어 줄수있음.
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
위와 같은 코드를 사용하여 log rotate 에 적용가능 할것 같다.