티스토리 뷰
한화시스템 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 영역에 쓰지도 않는 데이터가 쌓여서 메모리를 잡아먹는다.
프로그램을 종료해도 그대로 남아있고 컴퓨터를 종료해야 그제서야 없어지기 때문에
자원 반납을 위해 닫아주자!!!
'한화시스템 > 회고' 카테고리의 다른 글
[026] 생각이 많은 힘든 하루..? (2) | 2024.07.25 |
---|---|
[025] JAVA 수집? 컬렉션(Collection)? (0) | 2024.07.24 |
한화시스템 BEYOND SW 캠프 9기 5주차 회고 (0) | 2024.07.21 |
[023] JAVA...땜에 내 뇌가 예외처리 된 것 같다...ㅋ (0) | 2024.07.20 |
[022] JAVA 점점 익숙해져가는 것 같기도? (+ object API 정리) (0) | 2024.07.19 |