public String getFileType (File file) {
InputStream inputStream = null;
byte[] buf = new byte[132];
try {
inputStream = new FileInputStream(file);
inputStream.read(buf, 0, 132);
} catch (IOException ioexception) {
return "UNKNOWN";
} finally {
if (inputStream != null) try { inputStream.close(); } catch (Exception exception) {}
}
int b0 = buf[0] & 255;
int b1 = buf[1] & 255;
int b2 = buf[2] & 255;
int b3 = buf[3] & 255;
if (buf[128] == 68 && buf[129] == 73 && buf[130] == 67 && buf[131] == 77
&& ((b0 == 73 && b1 == 73) || (b0 == 77 && b1 == 77)))
return "TIFF_AND_DICOM";
if (b0 == 73 && b1 == 73 && b2 == 42 && b3 == 0)
return "TIFF";
if (b0 == 77 && b1 == 77 && b2 == 0 && b3 == 42)
return "TIFF";
if (b0 == 255 && b1 == 216 && b2 == 255)
return "JPEG";
if (b0 == 71 && b1 == 73 && b2 == 70 && b3 == 56)
return "GIF";
if (buf[128] == 68 && buf[129] == 73 && buf[130] == 67 && buf[131] == 77)
return "DICOM";
if (b0 == 8 && b1 == 0 && b3 == 0)
return "DICOM";
if (b0 == 83 && b1 == 73 && b2 == 77 && b3 == 80)
return "FITS";
if (b0 == 80 && (b1 == 50 || b1 == 53) && (b2 == 10 || b2 == 13 || b2 == 32 || b2 == 9))
return "PGM";
if ( b0 == 66 && b1 == 77)
return "BMP";
if (b0 == 73 && b1 == 111)
return "ROI";
if (b0 >= 32 && b0 <= 126 && b1 >= 32 && b1 <= 126 && b2 >= 32 && b2 <= 126
&& b3 >= 32 && b3 <= 126 && buf[8] >= 32 && buf[8] <= 126)
return "TEXT";
if (b0 == 137 && b1 == 80 && b2 == 78 && b3 == 71)
return "PNG";
return "UNKNOWN";
}
±Â¹÷´Ô ¼Ò½º º¸¸é À§¿Í °°Àº ¸Þ¼µå·Î ÆÄÀÏ Å¸ÀÔÀ» üũÇϴµ¥ ¼Ò½º ÄÚµå ºÐ¼®ÀÌ Èûµå³×¿ä..
¹Ù»Ú½Å ¿ÍÁß¿¡ Á˼ÛÇÏÁö¸¸ ¶óÀιÙÀÌ ¶óÀÎÀ¸·Î ÄÚ¸àÆ® Á» ´Þ¾ÆÁֽøé Á¤¸» °¨»çÇÏ°Ú½À´Ï´Ù..^^;;