Java - DAY 19

NewTypeAsuka·2023년 3월 3일
0

Java@

목록 보기
20/22

1. 입출력(IO)

입출력

  • 컴퓨터 내부 또는 외부 장치와 프로그램 간의 데이터를 주고 받는 것
  • 입출력을 위한 하드웨어 장치 접근에 공통적인 방법으로 스트림을 이용함
  • 한쪽 방향으로만 흐른다는 것이 포인트

파일 경로

  • 1) 절대 경로: 절대적인 기준점을 기준으로 경로 작성
c:\tools\eclipse
  • 2) 상대 경로: 현재 위치를 기준으로 경로 작성(상대 경로 기준은 프로젝트 폴더 내부)
byte/byteTest.txt

스트림(Stream) 클래스

  • 입출력 장치에서 데이터를 읽고 쓰기 위해서 자바에서 제공하는 클래스
  • 모든 스트림은 단방향이며 각 장치마다 연결할 수 있는 스트림 존재
  • 한글 및 한자 등은 2바이트로 바이트 기반 스트림으로 쪼개져서 보내진다.
  • 문자가 아닌 사진, 동영상, 파일 등은 바이트 기반 스트림으로 보내진다.
// 문자, 바이트의 입출력 모두 아래 코드와 비슷한 형식의 정형화된 코드로 작성됨
public void byteOutput() {
	FileOutputStream fos = null;
    try {
    	fos = new FileOutputStream("byte/byteTest.txt");
        for(int i=0; i<content.length(); i++) {
        	char ch = content.charAt(i);
        	fos.write(ch);
        }
        System.out.println("바이트 기반 스트림 출력 완료");
     catch(FileNotFoundException e) {
     	e.printStackTrace();
     }catch(IOException e) {
     	e.printStackTrace();
     }finally {
     	try {
        	if(fos != null) fos.close();
        }catch (IOException e) {
        	e.printStackTrace();
     }
}

스트림 클래스 종류


  • 1) InputStream:
    바이트 기반 입력 스트림의 최상위 클래스
    2) OutputStream:
    바이트 기반 출력 스트림의 최상위 클래스
    3) FileInputStream:
    파일을 바이트 단위로 읽을 때 사용
    4) FileOutputStream:
    파일을 바이트 단위로 저장할 때 사용
    5) Reader:
    문자 기반 입력 스트림의 최상위 클래스
    6) Writer:
    문자 기반 출력 스트림의 최상위 클래스
    7) FileReader:
    문자 단위로 텍스트 기반 파일을 읽을 떄 사용
    8) FileWriter:
    문자 단위로 텍스트 기반 파일을 저장할 때 사용

보조 스트림

  • 스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해 사용
  • 보조 스트림은 실제 데이터를 주고 받는 스트림이 아니기 때문에 입출력 처리 불가능
  • 기반 스트림을 먼저 생성한 후 이를 이용하여 보조 스트림 생성
FileInputStream fis = new FileInputStream("sample.txt"); //기반 스트림 생성
BufferedInputStream bis = new BufferedInputStream(fis); //보조 스트림 생성
bis.read(); //보조 스트림으로부터 데이터 읽어옴





  • 직렬화와 역직렬화

File 클래스

  • 파일 시스템의 파일을 표현하는 클래스
  • 파일 크기, 파일 속성, 파일 이름 등의 정보와 파일 생성 및 삭제 기능 제공
File file = new File("C:dev/test.txt"); // 파일 경로



0개의 댓글