[JAVA] 파일 입출력

지누초이·2024년 3월 5일
0

JAVA

목록 보기
4/7
post-thumbnail

C언어에서 파일포인터를 이용해 파일에 접근하고 fclose()를 이용해 닫아준 것과 마찬가지로
JAVA에서도 파일 접근 후 닫아줄 필요가 있다.

파일 출력

파일 출력은 다음과 같은 세 가지 방법이 있으나, 아래 두 방법을 많이 사용한다.

  • FileOutputStream
  • FileWriter
  • PrintWriter

FileWriter

FileWriter fw = new FileWriter(FILE_PATH);

fw.write("작성할 내용\n");

fw.close();
  • 개행 기능이 포함되어있지 않으므로 \n을 붙혀줘야한다.
  • FileOutputStream에서는 byte 단위로 데이터를 처리하는 반면
    FileWriter에서는 문자열을 사용할 수 있어서 편리하다.
FileWriter fw = new FileWriter(FILE_PATH, true);

fw.write("작성할 내용\n");

fw.close();
  • 만약 해당 파일에 내용을 덮어씌우는 것말고 추가하고 싶다면(append)
    위와 같이 true를 인자로 넘겨주면 된다.

PrintWriter

PrintWriter pw = new PrintWriter(FILE_PATH);

pw.println("작성할 내용");

pw.close();
  • FileWriter에서는 개행을 위해 \n을 매번 붙혀줘야하는 것과는 다르게
    개행이 추가된 println()이 제공되어 편리하다.
PrintWriter pw = new PrintWriter(new FileWriter(FILE_PATH, true));

pw.println("작성할 내용");

pw.close();
  • 만약 해당 파일에 내용을 덮어씌우는 것말고 추가하고 싶다면(append)
    단순히 true만 추가하는 것이 아닌 FileWriter 객체를 전달해야한다.

파일 입력

파일 입력은 다음과 같은 두 가지 방법이 있으나, 두 번째 방법을 많이 사용한다.

  • FileOutputStream
  • BufferedReader

BufferedReader

BufferedReader br = new BufferedReader(FILE_PATH);

while(true){
	String line = br.readLine();
    
    if(line == null) break;
    
    // .. 파일 처리
}

br.close();
  • FileInputStream이 byte 단위로 데이터를 처리해 불편했던 것처럼,
    FileOutputStream도 byte 단위로 데이터를 처리하기때문에 잘 사용하지 않는다.
  • readLine() 메서드는 더 이상 읽을 데이터가 없으면 null을 리턴한다.

0개의 댓글