입출력(IO)

김덕근·2022년 12월 30일
0

concept

목록 보기
20/21

입출력(IO)

개념

Input과 Output의 약자, 컴퓨터 내부 또는 외부 장치와 프로그램 간의 데이터를 주고 받는 것

input : 입력
-> 외부에서 내부로 값이 들어오는 것

output : 출력
-> 내부에서 외부로 값이 나가는 것


File 클래스

파일 시스템의 파일을 표현하는 클래스
파일 크기, 파일 속성, 파일 이름 등의 정보와 파일 생성 및 삭제 기능 제공

File 객체 생성
File file = new File("파일 경로");
File file = new File("C:/dev/test.txt");


스트림(Stream) 클래스

입출력 장치에서 데이터를 읽고 쓰기 위해서 자바에서 제공하는 클래스
모든 스트림은 단방향이며 각각의 장치마다 연결할 수 있는 스트림 존재
하나의 스트림으로 입출력을 동시에 수행할 수 없으므로 동시에 수행하려면 2개의 스트림 필요

Stream : 입/출력 통로 역할(데이터가 흘러가는 통로)
기본적으로 Stream은 단방향

필수 ! 자원관리를 위해 스트림을 끊어줘야 한다


Point❗ 프로그램을 기준으로

출력 - 내보내면 쓰기 write();

출력(프로그램 -> 파일) - .write(); 문자는 1개씩 쓰고, 문자열은 한번에 쓰기

입력 - 가져오면 읽기 read();

입력(프로그램 <- 파일) - 숫자로 한개씩 읽어오고read(); 내용이 없으면 -1 반환

바이트 기반 스트림

1byte (a,b,c ...)
입력,출력

FileOutputStream : write(); (출력) 내부(프로그램) -> 외부(파일)
FileInputStream : read(); (입력) 외부(파일) -> 내부(프로그램)

문자 기반 스트림

2byte (김, ...)
읽기, 쓰기

FileWriter : write(); (파일 출력) 내부(프로그램) -> 외부(파일)
FileReader : read(); (파일 입력) 외부(파일) -> 내부(프로그램)


catch(IOException e) {
		// FileNotFoundException은 IOException의 자식임.
		// 다형성 적용으로 IOException 하나로 둘다 잡을 수 있다!
		System.out.println("예외 발생");
		e.printStackTrace(); // 예외 추적
			
		

// 사용한 스트림 자원반환(통로 없앰) --> 필수 작성!!!
// 프로그램 메모리 관리 차원에서 항상 다쓰면 끊어줌
} finally {
	try {
		fos.close(); // 예외 발생 하여, try - catch 구문으로 한번 더 작성
	} catch (IOException e) {
		e.printStackTrace();
	}
}

FileWriter

문자열 Writer시
String str = "안녕하세요. Hello. 1234 !#";
버퍼에 문자열이 들어가는데 fw.close();를 통해 버퍼에서 문자열이 밀려나가 출력된다.
fw.write(str);

프로그램 - 스트림 - 파일
스트림공간에 있지만 프로그램과 스트림 사이에 스트림 자원반환(통로 없앰) 으로 파일 공간으로 넘어감

profile
안녕하세요!

0개의 댓글