public void test() { FileInputStream fin = new FileInputStream(fps[i]); byte[] BOM = new byte[4]; fin.read(BOM, 0, 4); String encoding = getEncodingType(BOM); } public String getEncodingType(byte[] BOM) { if( (BOM[0] & 0xFF) == 0xEF && (BOM[1] & 0xFF) == 0xBB && (BOM[2] & 0xFF) == 0xBF ) return ("UTF-8"); else if( (BOM[0] & 0xFF) == 0xFE && (BOM[1] & 0xFF) == 0xFF ) return("UTF-16BE"); else if( (BOM[0] & 0xFF) == 0xFF && (BOM[1] & 0xFF) == 0xFE ) return ("UTF-16LE"); else if( (BOM[0] & 0xFF) == 0x00 && (BOM[1] & 0xFF) == 0x00 && (BOM[0] & 0xFF) == 0xFE && (BOM[1] & 0xFF) == 0xFF ) return ("UTF-32BE"); else if( (BOM[0] & 0xFF) == 0xFF && (BOM[1] & 0xFF) == 0xFE && (BOM[0] & 0xFF) == 0x00 && (BOM[1] & 0xFF) == 0x00 ) return ("UTF-32LE"); else return ("EUC-KR"); }