java 如何判断一个文件是否是压缩文件
时间: 2023-06-05 12:04:14 浏览: 957
Java 可以使用文件头的魔数来判断一个文件是否是压缩文件。具体来说,可以读取文件的前几个字节,并判断这些字节是否与已知的压缩文件格式的文件头匹配。比如,ZIP 文件的文件头为“PK”,GZIP 文件的文件头为“1F8B”等。如果文件头匹配,则可以判断文件是压缩文件;否则,可以判断文件不是压缩文件。以下是一个简单的 Java 代码示例:
import java.io.*;
public class FileUtil {
public static boolean isCompressedFile(String filePath) {
try {
FileInputStream fis = new FileInputStream(filePath);
byte[] header = new byte[4];
if (fis.read(header) == header.length) {
if (header[0] == 'Z' && header[1] == 'i' && header[2] == 'p' && header[3] == 0x08) {
return true; // ZIP 文件
} else if (header[0] == 0x1f && header[1] == (byte) 0x8b) {
return true; // GZIP 文件
} else {
return false; // 其他文件
}
}
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
}
当调用 isCompressedFile(filePath) 方法时,如果 filePath 所指的文件是压缩文件,返回 true;否则返回 false。