在Java中,可以使用文件的魔数来准确地判断文件类型。文件的魔数是文件开头的一些特定字节,它们用于识别文件类型。下面是一个示例代码,可以通过读取文件的魔数来判断文件类型: ```java import java.io.FileInputStream; import java.io.IOException; public class FileTypeChecker { private static final byte[] PDF_MAGIC_NUMBER = {0x25, 0x50, x44, 0x46}; // PDF 文件的魔数 private static final byte[] PNG_MAGIC_NUMBER = {0x89, 0x50, 0x4E, 0x47}; // PNG 文件的魔数 // 你可以继续添加其他文件类型的魔数 public static void main(String[] args) throws IOException { String filePath = "path/to/your/file"; String fileType = getFileType(filePath); System.out.println(fileType); } public static String getFileType(String filePath) throws IOException { FileInputStream inputStream = new FileInputStream(filePath); byte[] magicNumber = new byte[4]; int bytesRead = inputStream.read(magicNumber); inputStream.close(); if (bytesRead == 4) { if (isMagicNumberMatch(magicNumber, PDF_MAGIC_NUMBER)) { return "PDF"; } else if (isMagicNumberMatch(magicNumber, PNG_MAGIC_NUMBER)) { return "PNG"; } // 可以添加其他文件类型的判断 } return "Unknown"; } public static boolean isMagicNumberMatch(byte[] magicNumber, byte[] expectedMagicNumber) { for (int i = 0; i < expectedMagicNumber.length; i++) { if (magicNumber[i] != expectedMagicNumber[i]) { return false; } } return true; } } ``` 这个示例代码只判断了PDF和PNG文件类型的魔数,并不全面。你可以参考文件格式规范,添加其他文件类型及其对应的魔数。 还可以使用第三方库如Apache Tika来更全面地判断文件类型。 [2023-12-28 10:56:54 | AI写代码神器 | 1623点数解答]