Java IO Stream

1 minute read

✍2022-03-23

IO 스트림

❗ 개인이 공부한 내용을 적은 것 이기에 오류가 많을 수도 있음

1️⃣ 텍스트 파일 읽기

1) FileInputStream


💡 대략적인 순서

  1. File을 이용해 먼저 존재하는 파일을 매개변수로 한 객체 생성
  2. File을 매개변수로 한 FileInputStream 생성
  3. 반복을 돌면서 -1이 되기 전까지 출력
  • FileInputStream을 읽어 올 때 즉, fis.read()를 할때는 int값이 반환 된다 따라서 출력을 할때 (char)를 붙여 문자로 바꿔줘야 한다
  • 문자열이 아닌 byte로 하나씩 출력이 되는것이다(한글이 깨질 수 있음)

2) FileReader


💡 대략적인 순서

  1. File을 이용해 먼저 존재하는 파일을 매개변수로 한 객체 생성
  2. File을 매개변수로 한 FileReader 생성
  3. 반복을 돌면서 -1이 되기 전까지 출력
  • FileInputStream과 거의 비슷하다
  • Character 단위로 읽는다(한글이 깨지지 않는다)

3) BufferedReader


💡 대략적인 순서

  1. File을 이용해 먼저 존재하는 파일을 매개변수로 한 객체 생성
  2. File을 매개변수로 한 FileReader 생성
  3. FileReader를 매개변수로 한 BufferedReader 생성
  4. int 가 아닌 String을 활용해 초기화
  5. String이 null 이 되기전까지 출력
  • FileInputStream와 FileReader와는 다르게 int가 아닌 String을 활용하고 한줄씩 반환하기에 read()가 아닌 readLine()을 활용한다. 또한 String이기에 null값과 비교를 하여 출력한다

2️⃣ 텍스트에 글쓰기

1) FileOutputStream


💡 대략적인 순서

  1. File을 이용해 먼저 객체 생성
  2. File 존재 체크
  3. File을 매개변수로 갖는 FileOutputStream 객체 생성
  4. FileOutputStream.write() 사용
  • FileOutputStream의 write()는 파라미터로 byte값을 받는다 . 그래서 “내일도 공부” 라는 string의 값을 byte로 바꿔주기 위해 getByte() 메서드를 사용

2) BufferedWriter


💡 대략적인 순서

  1. File을 이용해 먼저 객체 생성
  2. File 존재 체크
  3. File을 매개변수로 갖는 FileWriter 객체 생성
  4. FileWriter를 매개변수로 갖는 BufferedWriter 객체 생성
  5. BufferedWriter.write()사용
  • FileOutputStream의 과정과 비교시 중간에 FileWriter객체를 생성하는 차이점을 보임

3) PrintWriter


💡 대략적인 순서

  1. File을 이용해 먼저 객체 생성
  2. File 존재 체크
  3. File을 매개변수로 갖는 FileWriter 객체 생성
  4. FileWriter를 매개변수로 갖는 PrintWriter 객체 생성
  5. PrintWriter.write()사용
  • FileOutputStream의 과정과 비교시 중간에 FileWriter객체를 생성하는 차이점을 보임
  • BufferedWriter.write()의 과정과 같게 중간에 FileWriter객체를 생성

Categories:

Updated:

Leave a comment