Java 判断文件是否为图片 - isImage() 方法及单元测试
Java 判断文件是否为图片 - isImage() 方法及单元测试
本文提供了一个 Java 方法 isImage() 用于判断文件是否为图片,并附带单元测试代码。该方法通过读取文件并检查其宽度和高度来判断是否为图片。
public static boolean isImage(InputStream imageFile) {
try {
Image img = ImageIO.read(imageFile);
if (img == null || img.getWidth(null) <= 0 || img.getHeight(null) <= 0) {
return false;
}
return true;
} catch (Exception e) {
return false;
}
}
单元测试
@Test
public void testIsImage() {
InputStream image1 = getClass().getResourceAsStream('test-image.jpg');
assertTrue(isImage(image1));
InputStream image2 = getClass().getResourceAsStream('test-image.png');
assertTrue(isImage(image2));
InputStream nonImage = getClass().getResourceAsStream('test-file.txt');
assertFalse(isImage(nonImage));
InputStream nonExistingFile = getClass().getResourceAsStream('non-existing-file.jpg');
assertFalse(isImage(nonExistingFile));
}
该测试代码测试了以下几种情况:
- 读取一个已存在的图片文件 (
test-image.jpg,test-image.png),确保isImage()方法返回true。 - 读取一个非图片文件 (
test-file.txt),确保isImage()方法返回false。 - 读取一个不存在的文件 (
non-existing-file.jpg),确保isImage()方法返回false。
代码说明
isImage() 方法使用 ImageIO.read() 方法读取输入流,并检查读取到的图片对象是否为空,以及图片的宽度和高度是否大于 0。如果满足这些条件,则判断该文件为图片,否则判断为非图片。
该方法可以作为判断文件类型的基础方法,例如,可以将其与其他判断方法组合,实现更完善的文件类型判断功能。
原文地址: https://www.cveoy.top/t/topic/nsUW 著作权归作者所有。请勿转载和采集!