FileWriter의 이어 쓰기 방법

- FileWriter의 생성자 예시 :

FileWriter fileWriter = new FileWriter(fileName);

(생성자에 두 번째 매개변수로 바로 true를 줄수도 있음)

 

- FileWriter의 이어 쓰기 예시 :

FileWriter fileWriter = new FileWriter(fileName, true);
// 파일에 내용 추가
fileWriter.write(textToAppend);
fileWriter.write("\n"); // 줄 바꿈 추가 (선택 사항)

// FileWriter 닫기
fileWriter.close();

 

 

PrintWriter의 이어 쓰기 방법

- PrintWriter의 생성자 예시 :

(기본적 방식)

FileWriter fileWriter = new FileWriter(fileName);
PrintWriter printWriter = new PrintWriter(fileWriter, true);

 

(기본적이지 않은 방식)

// FileWriter와 같이 생성자를 파일 이름으로 받는 방식의 PrintWriter 생성자 예시

String fileName = "example.txt"; // 파일 이름
PrintWriter printWriter = new PrintWriter(fileName);

 

- PrintWriter의 이어 쓰기 예시 :

// FileWriter 생성자의 두 번째 매개변수로 true를 전달하여 이어 쓰기 모드로 파일 열기
PrintWriter printWriter = new PrintWriter(new FileWriter(fileName, true));
// 파일에 내용 추가
printWriter.println(textToAppend); // println을 사용하여 줄 바꿈과 함께 내용 추가
// PrintWriter 닫기 (이때 FileWriter도 함께 닫힘)
printWriter.close();

 

PrintWriter는 기본적인 생성 방식을 보면 내부적으로 FileWriter 객체를 사용하여 파일을 다루게 된다.
( PrintWriter printWriter = new PrintWriter(fileWriter, true);)
그렇기 떄문에 이어쓰기를 하게 될 때도 PrintWriter를 FileWriter로 래핑 하게 되는 것을 알 수 있다.
( PrintWriter printWriter = new PrintWriter(new FileWriter(fileName, true));)
물론 두번째 매개변수로 true를 줘 이어쓰기 기능을 활성화 시키는 모습도 보인다.

 

 

 

FileWriter

- FileWriter는 문자열을 파일에 직업 쓰는 데 사용된다. 일반적으로 문자열을 그대로 파일에 쓰게 되며 타데이터 타입(숫자, 불리언, 객체 등)을 문자열로 변환해서 써야 하는 단점이 있다.

 

FileWriter의 사용 예시

PrintWriter

- PrintWriter는 FileWriter와 다양한 데이터 유형을 형식화된 문자열로 출력이 가능하다. 'print' 및 'println' 메서드를 사용하여 숫자, 문자열, 불리언 타입 등을 출력 가능하며 'printf' 메서드 또한 사용 가능하다. FileWriter와 달리 예외처리가 자동으로 이뤄져 프로그램이 중단되지 않는다는 장점이 있다.

 

PrintWriet의 사용 예시

PrintWriter에서는 println을 이용해 개행 문자('\n')를 자동으로 추가하고 형식화된 출력을 생성해 낸다.

 

FileWriter는 주로 간단한 텍스트 출력에 용이
PrintWriter는 더욱 다양한 데이터 유형을 출력하고 형식화된 출력을 생성하는데 유리
(Writer 클래스를 이용할 때엔 파일의 유무나 파일의 권한 등으로 인한 오류를 고려해 try-catch문을 사용하는 습관을 들이는 게 좋다)
Scanner 클래스의 객체 생성 방법

 

- Scanner sc= new Scanner(System.in);

여기서 '()' 안의 생성자 매개변수 System.in은 키보드로부터 입력 받을 때 사용 되는 표준 입력 스트림이다.

이렇게 생성 된 Scanner 객체 변수 sc를 사용해 다양한 데이터 타입을 입려받아 처리할 수 있다.

 

데이터 타입별 입력 방법

 

정수형, 

int num = sc.nextInt();

Double,

double value = sc.nextDouble();

문자열,

String str = sc.nextLine();

 

nextLine();의 다른 사용방식

 

위의 메소드중 String str = sc.nextLine();을 제외한 다른 메소드를 사용할 때엔

추가로 nextLine(); 메소드를 사용해야한다.

 

nextLine(); 메소드를 제외한 다른 메소드들은 입력을 받은 후 개행문자 엔터('\n')가 압력버퍼에 남게 된다.

이후 nextLine(); 메소드 입력 없이 추가 작업이 이뤄졌을 경우, 의도치 않은 상황이 발생 될 수 있다.

 

때문에 필히 예제와 같은 사용방식이 필요하다.

 

예제)

 

+ Recent posts