Java IO Stream
✍2022-03-23
IO 스트림
❗ 개인이 공부한 내용을 적은 것 이기에 오류가 많을 수도 있음
1️⃣ 텍스트 파일 읽기
1) FileInputStream
💡 대략적인 순서
- File을 이용해 먼저 존재하는 파일을 매개변수로 한 객체 생성
- File을 매개변수로 한 FileInputStream 생성
- 반복을 돌면서 -1이 되기 전까지 출력
- FileInputStream을 읽어 올 때 즉, fis.read()를 할때는 int값이 반환 된다 따라서 출력을 할때 (char)를 붙여 문자로 바꿔줘야 한다
- 문자열이 아닌 byte로 하나씩 출력이 되는것이다(한글이 깨질 수 있음)
2) FileReader
💡 대략적인 순서
- File을 이용해 먼저 존재하는 파일을 매개변수로 한 객체 생성
- File을 매개변수로 한 FileReader 생성
- 반복을 돌면서 -1이 되기 전까지 출력
- FileInputStream과 거의 비슷하다
- Character 단위로 읽는다(한글이 깨지지 않는다)
3) BufferedReader
💡 대략적인 순서
- File을 이용해 먼저 존재하는 파일을 매개변수로 한 객체 생성
- File을 매개변수로 한 FileReader 생성
- FileReader를 매개변수로 한 BufferedReader 생성
- int 가 아닌 String을 활용해 초기화
- String이 null 이 되기전까지 출력
- FileInputStream와 FileReader와는 다르게 int가 아닌 String을 활용하고 한줄씩 반환하기에 read()가 아닌 readLine()을 활용한다. 또한 String이기에 null값과 비교를 하여 출력한다
2️⃣ 텍스트에 글쓰기
1) FileOutputStream
💡 대략적인 순서
- File을 이용해 먼저 객체 생성
- File 존재 체크
- File을 매개변수로 갖는 FileOutputStream 객체 생성
- FileOutputStream.write() 사용
- FileOutputStream의 write()는 파라미터로 byte값을 받는다 . 그래서 “내일도 공부” 라는 string의 값을 byte로 바꿔주기 위해 getByte() 메서드를 사용
2) BufferedWriter
💡 대략적인 순서
- File을 이용해 먼저 객체 생성
- File 존재 체크
- File을 매개변수로 갖는 FileWriter 객체 생성
- FileWriter를 매개변수로 갖는 BufferedWriter 객체 생성
- BufferedWriter.write()사용
- FileOutputStream의 과정과 비교시 중간에 FileWriter객체를 생성하는 차이점을 보임
3) PrintWriter
💡 대략적인 순서
- File을 이용해 먼저 객체 생성
- File 존재 체크
- File을 매개변수로 갖는 FileWriter 객체 생성
- FileWriter를 매개변수로 갖는 PrintWriter 객체 생성
- PrintWriter.write()사용
- FileOutputStream의 과정과 비교시 중간에 FileWriter객체를 생성하는 차이점을 보임
- BufferedWriter.write()의 과정과 같게 중간에 FileWriter객체를 생성
Leave a comment