파일 입출력
포스트
취소

파일 입출력

표준 입출력

  • Java에서는 콘솔과 같은 표준 입출력 장치를 위해 System이라는 표준 입출력 클래스를 정의하고 있다.
  • System 클래스는 표준 입출력을 위해 클래스 변수를 제공한다.
  • 표준 입출력 스트림은 Java가 자동으로 생성하므로, 개발자가 별도로 스트림을 생성하지 않아도 사용할 수 있다.
클래스 변수입출력 스트림설명
System.inInputStream콘솔로부터 데이터를 입력
System.outPrintStream콘솔로 데이터를 출력.
System.errPrintStream콘솔로 데이터를 출력

표준 입출력의 대상 변경

  • 특정 System 메소드를 사용하면 스트림의 대상을 다른 입출력 장치로 변경할 수 있다.
메소드설명
static void setIn(InputStream in)입력 스트림의 대상을 전달된 입력 스트림으로 변경
static void setOut(PrintStream out)출력 스트림의 대상을 전달된 출력 스트림으로 변경
static void setErr(PrintStream err)출력 스트림의 대상을 전달된 출력 스트림으로 변경

RandomAccessFile 클래스

  • 순차적인 접근이 아닌 임의의 지점에 접근하여 작업을 수행하고 싶을 때 사용하는 클래스
  • 이 클래스는 파일만을 대상으로 하며, 임의의 지점에서 입출력을 동시에 수행할 수 있다.
  • RandomAccessFile 클래스의 생성자에는 인수로 파일의 이름뿐만 아니라 파일 모드까지 함께 전달해야 한다.
  • 파일 모드
    • 파일의 사용 용도를 나타내는 문자열
    • 종류
      • r
        • 읽기 전용
      • rw
        • 읽기쓰기 가능
        • 파일이 없으면 새로운 파일 생성
  • 메소드
    • getFilePointer()
      • 파일 포인터의 현재 위치를 확인
    • seek()
      • 파일 포인터의 위치를 변경
  • 사용 예시
public static void main(String[] args){
    try {
        //"rw" 모드로 "data.txt" 파일 개방
        RandomAccessFile file = new RandomAccessFile("data.txt", "rw");
        System.out.println(file.getFilePointer()); //출력 : 0, 파일 포인터의 현재 위치를 반환

        file.writeInt(10);                         //정수 10을 저장
        System.out.println(file.getFilePointer()); //출력 : 4

        file.seek(20);                             //파일 포인터의 위치를 20으로 이동
        System.out.println(file.getFilePointer()); //출력 : 20
    } catch (IOException e) {
        e.printStackTrace();
    }
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.