From e7d45eb9e0d6560e4f9a449a6d59694e3f5d8d5b Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 12 Sep 2023 18:37:58 +0800 Subject: [PATCH] add null check --- .../hutool/core/codec/binary/Base64.java | 18 +++++++++++++ .../dromara/hutool/core/io/file/FileUtil.java | 7 +++--- .../hutool/core/io/file/FileWrapper.java | 25 +++++++++++++------ 3 files changed, 40 insertions(+), 10 deletions(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/codec/binary/Base64.java b/hutool-core/src/main/java/org/dromara/hutool/core/codec/binary/Base64.java index 3e48e55fd..e7dcaee12 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/codec/binary/Base64.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/codec/binary/Base64.java @@ -43,6 +43,9 @@ public class Base64 { * @return 编码后的bytes */ public static byte[] encode(final byte[] arr, final boolean lineSep) { + if (arr == null) { + return null; + } return lineSep ? java.util.Base64.getMimeEncoder().encode(arr) : java.util.Base64.getEncoder().encode(arr); @@ -99,6 +102,9 @@ public class Base64 { * @return 被加密后的字符串 */ public static String encode(final byte[] source) { + if (source == null) { + return null; + } return java.util.Base64.getEncoder().encodeToString(source); } @@ -110,6 +116,9 @@ public class Base64 { * @since 5.5.2 */ public static String encodeWithoutPadding(final byte[] source) { + if (source == null) { + return null; + } return java.util.Base64.getEncoder().withoutPadding().encodeToString(source); } @@ -121,6 +130,9 @@ public class Base64 { * @since 3.0.6 */ public static String encodeUrlSafe(final byte[] source) { + if (source == null) { + return null; + } return java.util.Base64.getUrlEncoder().withoutPadding().encodeToString(source); } @@ -132,6 +144,9 @@ public class Base64 { * @since 4.0.9 */ public static String encode(final InputStream in) { + if (in == null) { + return null; + } return encode(IoUtil.readBytes(in)); } @@ -143,6 +158,9 @@ public class Base64 { * @since 4.0.9 */ public static String encodeUrlSafe(final InputStream in) { + if (in == null) { + return null; + } return encodeUrlSafe(IoUtil.readBytes(in)); } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java index 9585d49dc..a31b694c6 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java @@ -1617,6 +1617,9 @@ public class FileUtil extends PathUtil { * @throws IORuntimeException IO异常 */ public static byte[] readBytes(final File file) throws IORuntimeException { + if (null == file) { + return null; + } return readBytes(file.toPath()); } @@ -1689,9 +1692,7 @@ public class FileUtil extends PathUtil { * @since 5.7.10 */ public static String readString(final URL url, final Charset charset) throws IORuntimeException { - if (url == null) { - throw new NullPointerException("Empty url provided!"); - } + Assert.notNull(url, "Empty url provided!"); InputStream in = null; try { diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java index cdf0b7ad1..1d45f6f9d 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java @@ -13,7 +13,9 @@ package org.dromara.hutool.core.io.file; import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.util.CharsetUtil; +import org.dromara.hutool.core.util.ObjUtil; import java.io.File; import java.io.Serializable; @@ -24,32 +26,37 @@ import java.nio.charset.StandardCharsets; * 文件包装器,扩展文件对象 * * @author Looly - * */ -public class FileWrapper implements Wrapper, Serializable{ +public class FileWrapper implements Wrapper, Serializable { private static final long serialVersionUID = 1L; protected File file; protected Charset charset; - /** 默认编码:UTF-8 */ + /** + * 默认编码:UTF-8 + */ public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8; // ------------------------------------------------------- Constructor start + /** * 构造 - * @param file 文件 - * @param charset 编码,使用 {@link CharsetUtil} + * + * @param file 文件(非{@code null}) + * @param charset 编码,使用 {@link CharsetUtil},传入{@code null}则使用默认编码{@link #DEFAULT_CHARSET} */ public FileWrapper(final File file, final Charset charset) { - this.file = file; - this.charset = charset; + this.file = Assert.notNull(file); + this.charset = ObjUtil.defaultIfNull(charset, DEFAULT_CHARSET); } // ------------------------------------------------------- Constructor end // ------------------------------------------------------- Setters and Getters start start + /** * 获得文件 + * * @return 文件 */ @Override @@ -59,6 +66,7 @@ public class FileWrapper implements Wrapper, Serializable{ /** * 设置文件 + * * @param file 文件 * @return 自身 */ @@ -69,6 +77,7 @@ public class FileWrapper implements Wrapper, Serializable{ /** * 获得字符集编码 + * * @return 编码 */ public Charset getCharset() { @@ -77,6 +86,7 @@ public class FileWrapper implements Wrapper, Serializable{ /** * 设置字符集编码 + * * @param charset 编码 * @return 自身 */ @@ -88,6 +98,7 @@ public class FileWrapper implements Wrapper, Serializable{ /** * 可读的文件大小 + * * @return 大小 */ public String readableFileSize() {