제 요구 사항은 파일이 jpeg/jpg/png인지 확인하는 것입니다. 다음 코드를 작성했습니다.이미지 파일의 유효성을 검사하기 위해 파일의 마법 번호를 확인했습니다. 파일의 매직 번호를 변경할 수 있습니까?
public boolean isFileValid(File file) throws IOException {
DataInputStream input = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));
int fileSignature = input.readInt();
input.close();
logger.info(fileSignature);
if (fileSignature == 0xffd8ffe0) {
logger.info("File is jpeg");
return true;
} else if(fileSignature == 0x89504E47){
logger.info("file is in PNG");
return true;
} else {return false;}
}
내가 우분투를 13.04를 이용하고 있고 위의 코드 나랑 잘 동작은 파일의 서명이 doesnot 다양한 OS마다 다를 (내가 다른 OS에서 테스트 havenot으로 그래도 난이 매우 확실하지 않다) 읽어 보시기 바랍니다 또한 파일의 서명을 변경할 수 있습니까? 타사 라이브러리를 사용하지 않고도이 작업을 수행 할 수있는 더 좋은 방법이 있습니까?
'경우 (fileSignature == 0xffd8ffe0) {} 다른 경우 (fileSignature == 0xffd8ffe0) {}'? ? –