기본 콘텐츠로 건너뛰기

3월, 2015의 게시물 표시

자바에서 파일 타입을 확인하는 방법들... 그리고 Apache Tika...

뭐 역시나 내가 직접 조사한 것은 아니고 Java Code Geeks 에서 본 내용에 대한 정리이다. 자세한 사항은 [원문보기]  를 클릭해서 확인하면 된다. 원문에서는 코드와 스크린샷을 포함한 예제를 확인할 수 있으니 내용을 보시고자 하시는 분들은 꼭 원문을 참고하시길... 내가 쓰는 포스트가 대부분 그렇지만, 이 글도 그저 내용을 정리해서 내가 나중에 확인하기 위해 쓰는 글일 뿐... 1. Files.probeContentType(Path)를 이용하는 방법 [JDK 7] 이 방법은 파일 확장자를 이용해서 판단하는 것으로 보인다. 즉, gif 파일을 png라고 확장자를 주면 png 로 인식한다는 것. 또 확장자가 없는 파일의 경우는 null 을 리턴한다. 2. MimetypesFileTypeMap.getContentType(String) 을 이용하는 방법 [JDK 6] 이 방법은 클래스 명에서 유추가 가능한 것 처럼 Mime type 을 이용한다. 앞서의 경우와 같이 gif 파일을 png 라고 하거나 pdf 파일을 txt 로 하거나 하면 확장자로 판단을 한다. 1번 경우와 다른 점을 이야기하자면 기본적으로 텍스트나 이미지 확장자가 아닌 경우에는 xml 파일을 포함해서 application/octet-stream을 반환한다. 또한 확장자가 없는 파일의 경우도 application/octet-stream을 반환한다. 3. URLConnection.getContentType() 이 방법 역시 확장자에 의한 판단. 대신 null 대신 content/unknown을 반환 4. URLConnection.guessContentTypeFromName(String) 역시 확장자. 3번과 다른 것은 null을 반환. 5. URLConnection.guessContentTypeFromStream(InputStream) 예제에서는 전부 null 을 반환. 저자의 설명에 따르면 여기서 매개변수로 주어진 InputStream은 marks를