본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

파일내에서 원하는 위치로 이동할 수 있는, RandomAccessFile

RandomAccessFile
파일내에서 원하는 위치로 이동할 수 있는 Java의 클래스
파일의 내용을 읽거나 쓰는 데 사용될 수 있으며, 파일 내의 임의 위치로 이동하여 데이터를 읽거나 쓸 수 있다.
다른 입출력 스트림과는 달리 RandomAccessFile은 파일 내의 어떤 위치든 접근할 수 있다.

`RandomAccessFile(File file, String mode)` :  지정된 파일 객체 및 모드로 `RandomAccessFile` 인스턴스를 생성한다.
`RandomAccessFile(String fileName, String mode)` :  지정된 파일 이름 및 모드로 `RandomAccessFile` 인스턴스를 생성한다.
`FileChannel getChannel()` :  파일의 `FileChannel`을 반환합니다. 이 채널을 통해 파일에 대한 I/O 작업을 수행할 수 있다.
`FileDescriptor getFD()`: 파일 디스크립터를 반환한다
`long getFilePointer()`: 현재 파일 포인터의 위치를 반환한다.
`long length()`: 파일의 길이를 반환한다.
`void seek(long pos)`: 파일 포인터를 지정된 위치로 이동한다.
'void setLength(long newLength)`: 파일의 길이를 설정한다. 파일의 길이를 늘리거나 줄일 수 있다.
`int skipBytes(int n)`: 현재 파일 포인터에서 `n`바이트를 건너뛴다. 파일 포인터는 'n'바이트만큼만 이동하고 실제로 읽지않는다.

 

 

 

"test.txt" 파일에 데이터를 쓰고, 파일 포인터를 이동하여 데이터를 읽는 예시이다.

import java.io.*;

public class RandomAccessFileExample {
    public static void main(String[] args) {
        try {
            // RandomAccessFile 인스턴스 생성
            RandomAccessFile file = new RandomAccessFile("test.txt", "rw");

            // 파일에 데이터 쓰기
            file.writeUTF("Hello, RandomAccessFile!");

            // 현재 파일 포인터의 위치 확인
            System.out.println("현재 파일 포인터의 위치: " + file.getFilePointer());

            // 파일의 길이 확인
            System.out.println("파일의 길이: " + file.length());

            // 파일 포인터 이동
            file.seek(0);

            // 파일에서 데이터 읽기
            String readData = file.readUTF();
            System.out.println("파일에서 읽은 데이터: " + readData);

            // 파일 닫기
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}