728x90
1️⃣자바에사 입출력이란?
1.1 입출력이란?
- 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것 Ex) System.out.println();
1.2 스트림(Stream)
- 데이터를 운반하는데 사용되는 연결통로
- 연속적인 데이터 흐름
- 단반향 통신만 가능 => 입출력 동시 실행 시 2개의 스트림이 필요
1.3 바이트 기반 스트림 - InputStream, OutPutStream
- 스트림은 바이트 단위로 데이터를 전송
1.4 보조 스트림
- 스트림의 기능을 향상시키거나 새로운 기능 추가
- 입출력 처리는 불가능
Ex) test.txt 파일을 읽기위해 FileInputStream 사용, 입력성능을 향상시키기 위해 BufferedInputStream을 사용
//스트림 생성
FileInputStream fis =new FileInputStream("test.txt");
//보조스트림 생성
BUfferedInputStream bis =new BufferedInputStream(fis);
bis.read();//데이터 읽기
1.5 문자기반 스트림 - Reader, Writer
- 기존 바이트 스트림은 1byte이기 때문에 2byte인 문자를 처리할 수 없는 문제 발생
- InputStream -> Reader / OutStream -> Writer 로 변경
2️⃣바이트기반 스트림
2.2 ByteArrayInputStream과 ByteArrayOutputStream
- 바이트배열에 데이터를 입출력 하는데 사용되는 스트림
2.3 FileInputStream과 FileOutputStream
- 파일에 입출력을 하기 위한 스트림
3️⃣바이트기반의 보조스트림
3.1 FilterInputStream과 FilterOutputStream
- 모든 보조스트림의 조상이며 자체적으로 입출력은 수행 불가능
- 상속을 통해서 오버라이딩
protected FileterInputStream(InputStream in)
public FilterOutputStream(OutputStream out)
3.2 BufferdInputStream과 BufferdOutputStream
- 스트림의 입출력 효율을 높이기 위해 버퍼를 사용하는 보조스트림
- 버퍼를 이용해 한 번에여러 바이트를 입출력
4️⃣문자기반 스트림
4.1 Reader와 Writer
- char배열을 사용하는 문자기반의 스트림
4.2 FileReader와 FileWriter
- 파일로부터 텍스트데이터를 일고, 파일에 쓰는데 사용
5️⃣문자기반의 보조스트림
5.1 BufferedReader와 BufferedWriter
- 버퍼를 이용해 입출력의 효율을 높일 수 있도록 함
- 데이터를 라인단위로 읽고 줄바꿈 해주는 메서드
6️⃣표준입풀려과 File
6.1 표준입출력
- 콘솔을 통한 데이터입력과 콘솔로의 데이터 출력
- System.in : 데이터를 입력받는데 사용
- System.out : 데이터를 출력하는데 사용
- System.err : 데이터를 출력하는데 사용
6.2 표준입출력의 대상변경
- setOut() : System.out의 출력을 지정된 PrintStream으로 변경
- setErr() : System.err의 출력을 지정된 PrintStream으로 변경
- setln() : System.in의 입력을 지정된 InputStream으로 변경
7️⃣직렬화
7.1 직렬화란?
- 객체를 데이터 스트림으로 만드는 것
- 객체에 저장된 데이터를 연속적인 데이터로 변환
7.2 ObjectInputStream , ObjectOutputStream
- 직렬화에는 ObjectOutputStream, 역직렬화에는 ObjectInputStream
- InputStream, OutputStream을 직접 상속받지만기반스트림을 필요로 하는 보조스트림
- 객체 생성기 입출력 스트림 지정
728x90
'자바' 카테고리의 다른 글
[자바의 정석] - 12. 지네릭스, 열거형, 애너테이션 (0) | 2023.05.22 |
---|---|
[자바의 정석] - 11. 컬렉션 프레임 (0) | 2023.05.15 |
[자바의 정석] - 8. 예외처리 (1) | 2023.05.08 |
[자바의 정석 ] - 7장. 객체지향 프로그래밍Ⅱ (0) | 2023.04.25 |
[자바의 정석] - 5. 배열 / 6. 객체지향 (0) | 2023.04.19 |