diff --git a/hutool-core/src/main/java/cn/hutool/core/io/FileTypeUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/FileTypeUtil.java index f7eaf8774..5d8faf9b4 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/FileTypeUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/FileTypeUtil.java @@ -1,5 +1,7 @@ package cn.hutool.core.io; +import cn.hutool.core.lang.Console; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.HexUtil; import cn.hutool.core.util.StrUtil; @@ -50,9 +52,11 @@ public class FileTypeUtil { * @return 文件类型,未找到为{@code null} */ public static String getType(String fileStreamHexHead) { - for (Entry fileTypeEntry : FILE_TYPE_MAP.entrySet()) { - if (StrUtil.startWithIgnoreCase(fileStreamHexHead, fileTypeEntry.getKey())) { - return fileTypeEntry.getValue(); + if(MapUtil.isNotEmpty(FILE_TYPE_MAP)){ + for (final Entry fileTypeEntry : FILE_TYPE_MAP.entrySet()) { + if (StrUtil.startWithIgnoreCase(fileStreamHexHead, fileTypeEntry.getKey())) { + return fileTypeEntry.getValue(); + } } } byte[] bytes = (HexUtil.decodeHex(fileStreamHexHead)); diff --git a/hutool-core/src/test/java/cn/hutool/core/io/FileTypeUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/io/FileTypeUtilTest.java index bd2dc1a3e..03b82e6d9 100755 --- a/hutool-core/src/test/java/cn/hutool/core/io/FileTypeUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/io/FileTypeUtilTest.java @@ -5,9 +5,7 @@ import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.IOException; +import java.io.*; /** * 文件类型判断单元测试 @@ -92,4 +90,10 @@ public class FileTypeUtilTest { Assert.assertEquals("txt", type); } + @Test + @Ignore + public void issue3024Test() { + String x = FileTypeUtil.getType(FileUtil.getInputStream("d:/test/TEST_WPS_DOC.doc"),true); + System.out.println(x); + } }