텍스트 파일 읽기 (BufferedReader 사용)

텍스트 파일을 읽는 순서는 다음과 같습니다.

  1. File 인스턴스를 생성
  2. File 인스턴스를 파라미터로 하는 FileReader 인스턴스 생성
  3. FileReader 인스턴스를 파라미터로 하는 BufferedReader 생성
  4. BufferedReader에서 읽은 텍스트를 임시로 저장하는 String 타입의 변수 생성
  5. while문과 버퍼리더의 readLine() 을 이용해 텍스트 파일을 한 줄씩 읽음
  6. BufferedReaderclose() 시킴

 

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class ReadEx {
  public static void main(String[] args) {
      
      File file = new File("example.txt");
      try{
          FileReader fr = new FileReader(file);
          BufferedReader br = new BufferedReader(fr);
          String line = "";
          while((line = br.readLine()) != null) {
              System.out.println(line);                
          }
          br.close();
      } catch(Exception e){
          
      }
  
  }
  
}

위 코드를 try with resources(자바 7 이상 지원)으로 바꾸면 다음과 같습니다.

try(FileReader fr = new FileReader(file);
		BufferedReader br = new BufferedReader(fr);){
	String line = "";
	while((line = br.readLine()) != null) {
		System.out.println(line); 
	}
} catch (FileNotFoundException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}

 

텍스트 파일 쓰기 (BufferedWriter 사용)

텍스트 파일을 쓰는 순서는 다음과 같습니다.

  1. FileWriter 인스턴스 생성
  2. FileWriter 인스턴스를 파라미터로 하는 BufferedWriter 생성
  3. BufferedWriterwrite(), nextLine()등을 이용해 파일 기록
  4. BufferedWriterflush()를 이용해 버퍼를 비우고 파일 기록
  5. BufferedWriterclose() 시킴

 

import java.io.BufferedWriter;
import java.io.FileWriter;

public class WriteEx {
  public static void main(String[] args) throws Exception {
    FileWriter fw = new FileWriter("writeEx.txt", false);
    // 위에서 false는 isAppend 옵션으로, true를 하면 파일 뒤에 이어서 기록하며, 
    // false의 경우 파일을 초기화한다음 처음부터 기록
    
    BufferedWriter bw = new BufferedWriter(fw);
    bw.write("김밥 1줄");
    bw.newLine();
    bw.write("김밥 2줄");
    bw.flush();
	bw.close();
  }

}

위 코드를 try with resources(자바 7 이상 지원)으로 바꾸면 다음과 같습니다.

import java.io.BufferedWriter;
import java.io.FileWriter;

public class WriterEx2 {
  public static void main(String[] args) {
    try(BufferedWriter bw = new BufferedWriter(new FileWriter("writeEx2.txt", false))) {
      for(int i = 1; i <= 10; i++) {
        bw.write(String.format("김밥 %d줄", i));
        bw.newLine();
      }
      bw.flush();
    } catch(Exception e) {

    }
  }

}

 

예제 – 간단한 로그 기록

시스템 콘솔에 출력함과 동시에 텍스트 파일에도 해당 내용을 기록하는 예제입니다.

 


문의 | 코멘트 또는 ayaysir0@naver.com  donaricano-btn

카테고리: Java

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다