[java] 컬렉션 프레임워크를 활용한 파일 입출력
파일 입출력은 자바 프로그래밍에서 중요한 부분입니다. 컬렉션 프레임워크를 사용하면 파일 입출력을 효율적으로 처리할 수 있습니다. 이번에는 자바의 컬렉션 프레임워크를 활용한 파일 입출력에 대해 알아보겠습니다.
1. 파일 읽기
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class FileReader {
public List<String> readFile(String filePath) throws FileNotFoundException {
List<String> lines = new ArrayList<>();
File file = new File(filePath);
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
lines.add(line);
}
scanner.close();
return lines;
}
}
위의 코드는 파일을 읽어서 각 줄을 리스트에 저장하는 readFile
메서드를 구현한 예시입니다. Scanner
클래스를 사용하면 쉽게 파일을 읽을 수 있습니다.
2. 파일 쓰기
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
public class FileWriter {
public void writeFile(String filePath, List<String> lines) throws IOException {
File file = new File(filePath);
FileWriter writer = new FileWriter(file);
for (String line : lines) {
writer.write(line + "\n");
}
writer.close();
}
}
위의 코드는 리스트에 있는 문자열을 파일에 쓰는 writeFile
메서드를 구현한 예시입니다. FileWriter
클래스를 사용하면 파일에 쉽게 쓸 수 있습니다.
3. 활용 예시
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
public class FileExample {
public static void main(String[] args) {
FileReader fileReader = new FileReader();
FileWriter fileWriter = new FileWriter();
try {
// 파일 읽기
List<String> lines = fileReader.readFile("input.txt");
// 읽은 내용 수정하기
for (int i = 0; i < lines.size(); i++) {
String line = lines.get(i);
lines.set(i, line.toUpperCase());
}
// 수정된 내용 파일에 쓰기
fileWriter.writeFile("output.txt", lines);
System.out.println("파일 입출력이 완료되었습니다.");
} catch (FileNotFoundException e) {
System.out.println("파일이 존재하지 않습니다.");
} catch (IOException e) {
System.out.println("파일 입출력 중 오류가 발생하였습니다.");
}
}
}
위의 예시 코드는 실제로 파일을 읽고 수정한 후에 새로운 파일에 쓰는 과정을 나타냅니다. FileReader
와 FileWriter
를 사용하여 파일을 처리하고, 예외 처리를 통해 오류를 처리합니다.