[java] 파일 입출력에 함수형 인터페이스를 적용하는 예시는 어떤 것이 있나요?
자바에서 함수형 인터페이스는 람다식과 함께 많이 사용되며, 파일 입출력에서도 유용하게 적용할 수 있습니다. 함수형 인터페이스를 사용하면 파일 입출력 작업을 간결하고 읽기 쉽게 구현할 수 있습니다. 다음은 파일 입출력에 함수형 인터페이스를 적용하는 예시입니다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.function.Consumer;
public class FileIOWithFunctionalInterface {
public static void main(String[] args) {
String fileName = "example.txt";
// 파일에 쓰기
writeToFile(fileName, writer -> {
try {
writer.write("Hello, World!");
} catch (IOException e) {
e.printStackTrace();
}
});
// 파일에서 읽기
readFromFile(fileName, reader -> {
try {
String line = reader.readLine();
System.out.println(line);
} catch (IOException e) {
e.printStackTrace();
}
});
}
public static void writeToFile(String fileName, Consumer<BufferedWriter> fileWriter) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {
fileWriter.accept(writer);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void readFromFile(String fileName, Consumer<BufferedReader> fileReader) {
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
fileReader.accept(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
}
위의 예시 코드는 writeToFile
과 readFromFile
라는 두 개의 메소드를 정의하였습니다. 이 메소드들은 Consumer
함수형 인터페이스를 매개변수로 받아 파일 입출력을 수행합니다.
writeToFile
메소드는 파일에 쓰기 작업을 수행하고, readFromFile
메소드는 파일에서 읽기 작업을 수행합니다. 각각의 메소드 내부에서는 BufferedWriter
와 BufferedReader
를 이용하여 파일 입출력을 진행하고, Consumer
객체를 매개변수로 받아 실제 파일 작업을 수행합니다.
예시 코드를 실행하면 “example.txt” 파일에 “Hello, World!”를 쓰고, 다시 읽어서 출력하는 결과를 얻을 수 있습니다. 이렇게 함수형 인터페이스를 사용하여 파일 입출력을 구현하면 작업을 간결하게 처리할 수 있습니다.
더 자세한 정보는 Oracle Java Documentation을 참조할 수 있습니다.