Language/Java

[Java] java 입문 14 - File I/O

별토끼. 2017. 5. 25. 23:17
반응형


[Java] java 입문 14 - File I/O


  • txt File I/O
  • txt파일에 문자열 출력하기 (FileWriter)
  - 생성할 경로를 String type으로 저장한다.
  - File객체를 생성하여 경로를 넣어준다.
  - File에 문자열을 출력하기 위해서는 FileWriter 클래스를 이용한다.
  - FileWriter의 method인 write()를 이용하여 지정된 경로에 입력한다.
  - 입력이 끝나면 반드시 close() method를 써야한다.

  - close()하는 시점에 파일이 만들어진다.


  • txt파일의 문자열 읽어오기 (FileReader)

  - 읽어들일 파일의 경로를 입력한 File객체를 생성한다.

  - 파일에서 문자열을 읽어들일 수 있는 FileReader 객체를 생성한다.

  - 한 문자씩 저장할 배열객체를 생성한다.

  - 경로가 저장된 파일객체를 read()메소드를 이용해 읽어와 생성한 buffer배열에 저장한다.

  - 배열에 저장된 내용을 한글자씩 출력한다.


  • 줄단위로 문자열 읽기 (BufferedReader)

   - 문자열을 줄단위로 읽어올 수 있는 BufferedReader클래스를 이용한다.

   - BufferedReader의 readLine()메소드를 이용하면 한줄씩 읽을 수 있다.

   - 반복문을 이용해 여러줄을 읽을 수 있도록 한다.

   - line이 null값이면 반복문을 종료한다.



  • 이미지 복사하기(바이트단위 복사하기-FileInputStream/FileOutputStream) 
  - 이미지는 byte단위로 쪼개어 전송한다.
  - 이미지가 총 10000byte라고 하면 한번에 읽어들일 byte크기를 고려하여 객체를 생성한다.
  - 반복문을 이용해 read()메소드를 이용해 byte배열객체에 반복적으로 누적해 저장하는 방법을 이용한다.

 - 필요한 객체를 담을 변수를 FileInputStream, FileOutputStream타입으로 만든다.

  - 이미지의 경로가 담긴 객체를 생성하여 변수에 담는다.

  - while문을 이용해 반복하고 이미지 복사의 마지막에 buffer객체를 다 채우지 못했을 때는 새롭게 read한 곳 까지만 write하도록 .write(buffer, 0, readedByte)를 써준다.

  - finally를 이용해 마지막에는 예외가 발생하더라도 close()할 수 있도록 한다.

  - finally에서도 예외가 발생할 수 있는데 이것은 fos, fis변수가 null일 때 nullPointException이 발생하는 경우이다. 이 Exception을 해결하면 아래와 같다. 



반응형