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을 해결하면 아래와 같다.
반응형