[java] 유닉스/리눅스 시스템 호출을 사용하여 파일의 종류와 크기를 확인하는 방법에 대해 알려주세요.

아래는 Java에서 유닉스/리눅스 시스템 호출을 통해 파일의 종류와 크기를 확인하는 예제 코드입니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class FileMetadata {
    public static void main(String[] args) {
        String fileName = "example.txt";
        try {
            // 파일 종류 확인
            Process fileTypeProcess = Runtime.getRuntime().exec("file -b " + fileName);
            BufferedReader fileTypeOutput = new BufferedReader(new InputStreamReader(fileTypeProcess.getInputStream()));
            String fileType = fileTypeOutput.readLine();
            fileTypeOutput.close();

            System.out.println("File type: " + fileType);

            // 파일 크기 확인
            Process fileSizeProcess = Runtime.getRuntime().exec("stat -c %s " + fileName);
            BufferedReader fileSizeOutput = new BufferedReader(new InputStreamReader(fileSizeProcess.getInputStream()));
            String fileSize = fileSizeOutput.readLine();
            fileSizeOutput.close();

            System.out.println("File size: " + fileSize + " bytes");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서는 file 명령어를 사용하여 파일의 종류를 확인하고, stat 명령어를 사용하여 파일 크기를 확인합니다. 이는 유닉스/리눅스 시스템에서 해당 명령어들의 출력을 읽어와서 Java로 가져오는 방식입니다.

물론 이 방법은 Java 프로그램이 특정 운영 체제에 의존하게 되므로 주의가 필요합니다. 가능한 경우 Java의 내장 기능을 사용하여 해당 작업을 수행하는 것이 더 안전하고 이식성이 높은 방법일 수 있습니다.