파일 읽기와 쓰기

Java의 입력/출력과 스트림

Alex Liu

Software Development Engineer

형 변환

  • 기본형 간 형 변환

  • 확대 형 변환: 작은 타입 -> 큰 타입, 자동

    • byte -> short -> char -> int -> long -> float -> double
// 확대 형 변환 - 자동 수행
byte myByte = 8;
int myInt = myByte;
  • 축소 형 변환: 큰 타입 -> 작은 타입, 수동
// 축소 형 변환 - 수동 수행
double myDouble = 3.14;
int myInt = (int) myDouble; // (int)에 주목
Java의 입력/출력과 스트림

파일 읽기를 위한 특정 캐스팅 이해

  • int에서 char로 캐스팅: char data = (char) 123;
// 문자 'a'의 유니코드 값
int data = 97;
// `int` 값 그대로 출력
System.out.print(data);
// `int`를 `char`로 캐스팅하여 출력
System.out.print((char)data);
97
a
1 https://www.ascii-code.com/
Java의 입력/출력과 스트림

FileReader로 파일에서 데이터 읽기

  • 파일 읽기 기능을 위해 FileReader 클래스를 가져옵니다
import java.io.FileReader;
  • 파일을 읽어 문자 단위로 출력한 뒤 닫습니다
FileReader fr = new FileReader("example.txt");
int data = fr.read();
// 각 문자를 읽어 출력
while (data != -1) {
    System.out.print((char) data);
    data = fr.read();
}
fr.close(); // 리소스 해제를 위해 닫기
Java의 입력/출력과 스트림

BufferedReader로 효율적 읽기

  • BufferedReader - import java.io.BufferedReader;
    • 텍스트 파일을 한 줄씩 읽음
    • 큰 파일에 더 효율적
// BufferedReader 객체 생성
BufferedReader br = new BufferedReader(new FileReader("example.txt"));
String line;
// .readLine()으로 한 줄씩 읽기
while ((line = br.readLine())!= null){
  System.out.println(line);
}
br.close();
Java의 입력/출력과 스트림

FileWriter로 데이터 쓰기

  • FileWriter:
    • 기본적으로 기존 내용을 덮어씀 - 데이터 손실 주의!
  • FileWriter 가져오기
import java.io.FileWriter;


// 새 `FileWriter` 객체 생성 FileWriter fw = new FileWriter("example.txt"); // `.write()`로 파일에 쓰기 fw.write("Overwriting the file."); fw.close()
Java의 입력/출력과 스트림

FileWriter로 데이터 추가

  • FileWriter
    • append 모드로 설정하면 기존 내용 유지하며 데이터 추가 가능

$$

// append 모드로 `FileWriter` 초기화
FileWriter fw = new FileWriter("example.txt", true);
// 파일에 데이터 추가
fw.write("Appending data.");
fw.close()
Java의 입력/출력과 스트림

BufferedWriter로 효율적 쓰기

  • BufferedWriter - import java.io.BufferedWriter;
    • 더 큰 블록으로 효율적으로 텍스트 작성
    • 쓰기 연산 최소화
// BufferedWriter 객체 생성
BufferedWriter bw = new BufferedWriter(new FileWriter("example.txt"));
bw.write("Writing data");

// 줄 바꿈은 .newLine()
bw.newLine(); 
bw.close();
Java의 입력/출력과 스트림

Ayo berlatih!

Java의 입력/출력과 스트림

Preparing Video For Download...