[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의 내장 기능을 사용하여 해당 작업을 수행하는 것이 더 안전하고 이식성이 높은 방법일 수 있습니다.