자바 파일 입출력

곽태욱·2020년 6월 30일
0

바이너리 파일 출력(쓰기)

import java.io.FileOutputStream;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        try {
            // 파일 출력 스트림 객체 생성
            FileOutputStream out = new FileOutputStream("binaryIO.dat");

            // 바이트 배열 생성
            byte[] bytes = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77};

            // bytes[2]부터 3개 출력. 
            // 즉, 0x33, 0x44, 0x55. 아스키 코드로 각각 3, D, U
            out.write(bytes, 2, 3);

            // 파일 출력 스트림 닫기
            out.close();
            
            System.out.println("파일 쓰기 완료");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

바이너리 파일 입력(읽기)

import java.io.FileInputStream;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        try {
            // 파일 입력 스트림 객체 생성
            FileInputStream in = new FileInputStream("binaryIO.dat");

            // 파일 데이터를 저장할 배열 생성 (0으로 자동 초기화 됨)
            byte[] bytes = new byte[1024];

            // int read(byte[] b, int off, int len) throws IOException
            // b : 데이터를 저장할 배열
            // off : b[off]부터 파일에서 읽은 데이터를 저장 (생략 가능)
            // len : 파일에서 최대로 읽을 바이트 크기 (생략 가능)
            // 반환값: 실제로 읽은 바이트 크기
            int len = in.read(bytes, 5, 2);

            for (int i = 0; i < 10; i++) {
                System.out.printf("%x ", bytes[i]);
            }

            // 파일 입력 스트림 닫기
            // 파일 스트림 버퍼 해제, 프로세스와 OS 연결 해제
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
profile
이유와 방법을 알려주는 메모장 겸 블로그. 블로그 내용에 대한 토의나 질문은 언제나 환영합니다.

0개의 댓글