[java] 자바에서 유닉스/리눅스 시스템 호출을 사용하여 프로세스 간의 표준 입력과 출력을 리다이렉션하는 방법에 대해 알려주세요.

아래는 자바에서 프로세스 간의 표준 입력과 출력을 리다이렉션하는 방법을 나타내는 간단한 예제입니다.

import java.io.*;

public class ProcessRedirection {
    public static void main(String[] args) throws IOException {
        // 외부 프로그램 실행을 위한 ProcessBuilder 객체 생성
        ProcessBuilder processBuilder = new ProcessBuilder("cat");

        // 외부 프로그램 실행
        Process process = processBuilder.start();

        // 외부 프로그램의 입력 스트림에 데이터 전송
        OutputStream outputStream = process.getOutputStream();
        outputStream.write("Hello, World!".getBytes());
        outputStream.close();

        // 외부 프로그램의 출력 스트림에서 데이터 읽기
        InputStream inputStream = process.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println("External program output: " + line);
        }

        // 프로세스 종료
        process.destroy();
    }
}

위 예제에서는 cat 명령어를 실행하고, "Hello, World!"라는 문자열을 외부 프로그램의 입력으로 보내고, 외부 프로그램의 출력을 읽어와서 콘솔에 출력하는 과정을 나타냅니다.

이러한 방식으로 자바에서 유닉스/리눅스 프로세스 간의 표준 입력과 출력을 리다이렉션할 수 있습니다.