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 05f0eb1e2..79a3a8ebe 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 @@ -83,6 +83,8 @@ public class FileTypeUtil { FILE_TYPE_MAP.put("AC9EBD8F", "qdf"); // Quicken (qdf) FILE_TYPE_MAP.put("E3828596", "pwl"); // Windows Password (pwl) FILE_TYPE_MAP.put("2E7261FD", "ram"); // Real Audio (ram) + // https://stackoverflow.com/questions/45321665/magic-number-for-google-image-format + FILE_TYPE_MAP.put("52494646", "webp"); } /** 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 82d15663e..a0a92b194 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 @@ -75,4 +75,13 @@ public class FileTypeUtilTest { inputStream.reset(); } + @Test + @Ignore + public void webpTest(){ + // https://gitee.com/dromara/hutool/issues/I5BGTF + final File file = FileUtil.file("d:/test/a.webp"); + final BufferedInputStream inputStream = FileUtil.getInputStream(file); + final String type = FileTypeUtil.getType(inputStream); + Console.log(type); + } } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/management/JavaInfo.java b/hutool-extra/src/main/java/cn/hutool/extra/management/JavaInfo.java index a6198e2e1..dbac91231 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/management/JavaInfo.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/management/JavaInfo.java @@ -1,7 +1,7 @@ package cn.hutool.extra.management; -import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.regex.ReUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.SystemUtil; import java.io.Serializable; @@ -19,14 +19,6 @@ public class JavaInfo implements Serializable { private final String JAVA_VENDOR = SystemUtil.get("java.vendor", false); private final String JAVA_VENDOR_URL = SystemUtil.get("java.vendor.url", false); - // 1.1--1.3能否识别? - private final boolean IS_JAVA_1_1 = getJavaVersionMatches("1.1"); - private final boolean IS_JAVA_1_2 = getJavaVersionMatches("1.2"); - private final boolean IS_JAVA_1_3 = getJavaVersionMatches("1.3"); - private final boolean IS_JAVA_1_4 = getJavaVersionMatches("1.4"); - private final boolean IS_JAVA_1_5 = getJavaVersionMatches("1.5"); - private final boolean IS_JAVA_1_6 = getJavaVersionMatches("1.6"); - private final boolean IS_JAVA_1_7 = getJavaVersionMatches("1.7"); private final boolean IS_JAVA_1_8 = getJavaVersionMatches("1.8"); private final boolean IS_JAVA_9 = getJavaVersionMatches("9"); private final boolean IS_JAVA_10 = getJavaVersionMatches("10"); @@ -91,7 +83,6 @@ public class JavaInfo implements Serializable { /** * 返回1位整型的java版本,(取自系统属性:{@code java.version})如:7、8、11、15、17、18,返回1位,java10及其之后的版本返回值为2位 *
- * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} - * - * @return 如果当前Java版本为1.1,则返回{@code true} - */ - public final boolean isJava1_1() { - return IS_JAVA_1_1; - } - - /** - * 判断当前Java的版本。 - * - *
- * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} - * - * @return 如果当前Java版本为1.2,则返回{@code true} - */ - public final boolean isJava1_2() { - return IS_JAVA_1_2; - } - - /** - * 判断当前Java的版本。 - * - *
- * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} - * - * @return 如果当前Java版本为1.3,则返回{@code true} - */ - public final boolean isJava1_3() { - return IS_JAVA_1_3; - } - - /** - * 判断当前Java的版本。 - * - *
- * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} - * - * @return 如果当前Java版本为1.4,则返回{@code true} - */ - public final boolean isJava1_4() { - return IS_JAVA_1_4; - } - - /** - * 判断当前Java的版本。 - * - *
- * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} - * - * @return 如果当前Java版本为1.5,则返回{@code true} - */ - public final boolean isJava1_5() { - return IS_JAVA_1_5; - } - - /** - * 判断当前Java的版本。 - * - *
- * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} - * - * @return 如果当前Java版本为1.6,则返回{@code true} - */ - public final boolean isJava1_6() { - return IS_JAVA_1_6; - } - - /** - * 判断当前Java的版本。 - * - *
- * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} - * - * @return 如果当前Java版本为1.7,则返回{@code true} - */ - public final boolean isJava1_7() { - return IS_JAVA_1_7; - } - /** * 判断当前Java的版本。 * @@ -322,32 +229,32 @@ public class JavaInfo implements Serializable { return IS_JAVA_12; } - /**是否是当前java的版本。 @since 6.0.1 */ + /**是否是当前java的版本。*/ public final boolean isJava13() { return IS_JAVA_13; } - /**是否是当前java的版本。 @since 6.0.1 */ + /**是否是当前java的版本。*/ public final boolean isJava14() { return IS_JAVA_14; } - /**是否是当前java的版本。 @since 6.0.1 */ + /**是否是当前java的版本。*/ public final boolean isJava15() { return IS_JAVA_15; } - /**是否是当前java的版本。 @since 6.0.1 */ + /**是否是当前java的版本。*/ public final boolean isJava16() { return IS_JAVA_16; } - /**是否是当前java的版本。 @since 6.0.1 */ + /**是否是当前java的版本。*/ public final boolean isJava17() { return IS_JAVA_17; } - /**是否是当前java的版本。 @since 6.0.1 */ + /**是否是当前java的版本。*/ public final boolean isJava18() { return IS_JAVA_18; } diff --git a/hutool-extra/src/test/java/cn/hutool/extra/management/JavaInfoTest.java b/hutool-extra/src/test/java/cn/hutool/extra/management/JavaInfoTest.java index 8ba04b7b3..30aff77b6 100644 --- a/hutool-extra/src/test/java/cn/hutool/extra/management/JavaInfoTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/management/JavaInfoTest.java @@ -10,10 +10,9 @@ public class JavaInfoTest { @Test public void isJavaVersionAtLeastTest() { - boolean javaVersionAtLeast1 = ManagementUtil.getJavaInfo().isJavaVersionAtLeast(1.8f); + final int versionInt = ManagementUtil.getJavaInfo().getVersionIntSimple(); + Assert.assertTrue(versionInt >= 8); + final boolean javaVersionAtLeast1 = ManagementUtil.getJavaInfo().isJavaVersionAtLeast(1.8f); Assert.assertTrue(javaVersionAtLeast1); - - boolean javaVersionAtLeast2 = ManagementUtil.getJavaInfo().isJavaVersionAtLeast(8f); - Assert.assertTrue(javaVersionAtLeast2); } }