티스토리 뷰

한화시스템 BEYOND SW 캠프 9기 24일차
2024.07.22_월

 

정복하고 싶다!!!!ㅋㅋㅋㅋㅋ

지난주에 배운 예외처리에 이어서 io패키지를 통해서 예외처리를 더 공부하고 입출력 및 파일클래스까지 배웠다...

이번에는 역대급으로 다들 이해를 하기 힘들어하는 것 같았다...나 역시 이해가 잘 ㅠㅠ

그래도 우리에겐 무엇이 있느냐???!??!?!?!

 

하브루타

 

 

짝꿍인 해관님이랑 하브루타 하면서 디테일한 것은 더 공부해야겠지만 큰 틀은 확실히 잡히는 것 같다.

그 틀을 토대로 공부를 하면 좋을 것 같다.

 

오늘 배운 입출력 중

기본 스트림은 크게 Stream, [Reader, Writer] 2가지 이다.

1. Stream 계열은 바이트 기반 스트림이고

1-1. InputStream

: FileInputStream / BufferedInputStream / DataInputStream

1-2. OutputStream

: FileOutputStream / BufferedOutputStream / DataOutputStream / PrintStream

 

2. [Reader, Writer] 계열은 문자 기반 스트림이다.

2-1. Reader

: FileReader / InputStreamReader / BufferedReader

2-2. Writer

: FileWriter / OutputStreamWriter / BufferedWriter / PrintWriter

 

ex. BufferedReader : Buffered가 붙어 한 줄씩 처리

→ Scanner 와 유사

ex. BufferedWriter : Buffered가 붙어 한 줄씩 처리

→ System.out.println(); 과 유사

 

보조 스트림은 스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해 사용하는데

1. BufferedInputStream / BufferedOutputStream

: 입출력 속도 향상 및 한 줄씩 출력 및 입력 관련 메소드 제공.

즉, 기본 스트림은 한 글자씩 밖에 못받아서 한 줄씩 받기 위해 사용한다.

 

2. InputStreamReader / OutputStreamWriter

: 인코딩 방식을 고려한 한글 깨짐 방지를 위해 고려

즉, 형변환(한글로 변환) 시 깨짐을 방지한다.

 

3. DataInputStream / DataOutputStream

: 기본 자료형 및 문자열 관련 타입에 따른 메소드를 제공

 

4. ObjectInputStream / ObjectOutputStream

: 객체 단위 입출력을 위한 보조 스트림

 

작성하다 보니 기본 스트림과 보조 스트림의 차이가 조금 헷갈린다!!

두 개에 대해서 다시 공부해봐야겠다!

 

예외처리도 반복해서 사용하니 괜찮은 것 같다. 이해를 좀 해야겠지만...

그리고 이런 스트림들은 일종의 통로이고 다 사용했으면 자원을 반납하기 위해 닫아줘야 한다.

닫아주지 않으면 heap 영역에 쓰지도 않는 데이터가 쌓여서 메모리를 잡아먹는다.

프로그램을 종료해도 그대로 남아있고 컴퓨터를 종료해야 그제서야 없어지기 때문에

자원 반납을 위해 닫아주자!!!

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함