This commit is contained in:
Looly 2023-03-12 15:04:01 +08:00
parent 3a259cdb58
commit bb89901961
116 changed files with 1004 additions and 384 deletions

View File

@ -1,7 +1,7 @@
package cn.hutool.core.cache.file;
import cn.hutool.core.cache.Cache;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import java.io.File;

View File

@ -1,7 +1,7 @@
package cn.hutool.core.classloader;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.net.url.URLUtil;
import cn.hutool.core.reflect.MethodUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.codec.BaseN;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.text.StrUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.codec.BaseN;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.text.StrUtil;

View File

@ -1,7 +1,7 @@
package cn.hutool.core.compress;
import cn.hutool.core.exceptions.ValidateException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;

View File

@ -2,7 +2,7 @@ package cn.hutool.core.compress;
import cn.hutool.core.collection.iter.EnumerationIter;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.file.FileNameUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.compress;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.Resource;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.date;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.text.StrUtil;
import java.text.NumberFormat;

View File

@ -1,6 +1,7 @@
package cn.hutool.core.io;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.util.ArrayUtil;
import java.io.File;

View File

@ -1,7 +1,6 @@
package cn.hutool.core.io.file;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.func.SerConsumer;
@ -19,7 +18,6 @@ import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.function.Function;
/**
* 文件读取器

View File

@ -1,7 +1,8 @@
package cn.hutool.core.io;
package cn.hutool.core.io.file;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;
import java.io.File;
@ -32,7 +33,7 @@ public class FileTypeUtil {
* @param extName 文件扩展名
* @return 之前已经存在的文件扩展名
*/
public static String putFileType(String fileStreamHexHead, String extName) {
public static String putFileType(final String fileStreamHexHead, final String extName) {
return FILE_TYPE_MAP.put(fileStreamHexHead, extName);
}
@ -42,7 +43,7 @@ public class FileTypeUtil {
* @param fileStreamHexHead 文件流头部Hex信息
* @return 移除的文件扩展名
*/
public static String removeFileType(String fileStreamHexHead) {
public static String removeFileType(final String fileStreamHexHead) {
return FILE_TYPE_MAP.remove(fileStreamHexHead);
}
@ -52,13 +53,13 @@ public class FileTypeUtil {
* @param fileStreamHexHead 文件流头部16进制字符串
* @return 文件类型未找到为{@code null}
*/
public static String getType(String fileStreamHexHead) {
for (Entry<String, String> fileTypeEntry : FILE_TYPE_MAP.entrySet()) {
public static String getType(final String fileStreamHexHead) {
for (final Entry<String, String> fileTypeEntry : FILE_TYPE_MAP.entrySet()) {
if (StrUtil.startWithIgnoreCase(fileStreamHexHead, fileTypeEntry.getKey())) {
return fileTypeEntry.getValue();
}
}
byte[] bytes = (HexUtil.decodeHex(fileStreamHexHead));
final byte[] bytes = (HexUtil.decodeHex(fileStreamHexHead));
return FileMagicNumber.getMagicNumber(bytes).getExtension();
}
@ -68,8 +69,9 @@ public class FileTypeUtil {
* @param in 文件流
* @param fileHeadSize 自定义读取文件头部的大小
* @return 文件类型未找到为{@code null}
* @throws IORuntimeException IO异常
*/
public static String getType(InputStream in,int fileHeadSize) throws IORuntimeException {
public static String getType(final InputStream in, final int fileHeadSize) throws IORuntimeException {
return getType((IoUtil.readHex(in, fileHeadSize,false)));
}
@ -82,7 +84,7 @@ public class FileTypeUtil {
* @return 类型文件的扩展名未找到为{@code null}
* @throws IORuntimeException 读取流引起的异常
*/
public static String getType(InputStream in,boolean isExact) throws IORuntimeException {
public static String getType(final InputStream in, final boolean isExact) throws IORuntimeException {
return isExact
?getType(readHex8192Upper(in))
:getType(readHex64Upper(in));
@ -96,7 +98,7 @@ public class FileTypeUtil {
* @return 类型文件的扩展名未找到为{@code null}
* @throws IORuntimeException 读取流引起的异常
*/
public static String getType(InputStream in) throws IORuntimeException {
public static String getType(final InputStream in) throws IORuntimeException {
return getType(in,false);
}
@ -116,7 +118,7 @@ public class FileTypeUtil {
* @return 类型文件的扩展名未找到为{@code null}
* @throws IORuntimeException 读取流引起的异常
*/
public static String getType(InputStream in, String filename) throws IORuntimeException {
public static String getType(final InputStream in, final String filename) throws IORuntimeException {
return getType(in,filename,false);
}
@ -136,7 +138,7 @@ public class FileTypeUtil {
* @return 类型文件的扩展名未找到为{@code null}
* @throws IORuntimeException 读取流引起的异常
*/
public static String getType(InputStream in, String filename,boolean isExact) throws IORuntimeException {
public static String getType(final InputStream in, final String filename, final boolean isExact) throws IORuntimeException {
String typeName = getType(in,isExact);
if (null == typeName) {
// 未成功识别类型扩展名辅助识别
@ -193,7 +195,7 @@ public class FileTypeUtil {
* @return 类型文件的扩展名未找到为{@code null}
* @throws IORuntimeException 读取文件引起的异常
*/
public static String getType(File file,boolean isExact) throws IORuntimeException {
public static String getType(final File file, final boolean isExact) throws IORuntimeException {
InputStream in = null;
try {
in = IoUtil.toStream(file);
@ -216,7 +218,7 @@ public class FileTypeUtil {
* @return 类型文件的扩展名未找到为{@code null}
* @throws IORuntimeException 读取文件引起的异常
*/
public static String getType(File file) throws IORuntimeException {
public static String getType(final File file) throws IORuntimeException {
return getType(file,false);
}
@ -228,7 +230,7 @@ public class FileTypeUtil {
* @return 类型
* @throws IORuntimeException 读取文件引起的异常
*/
public static String getTypeByPath(String path,boolean isExact) throws IORuntimeException {
public static String getTypeByPath(final String path, final boolean isExact) throws IORuntimeException {
return getType(FileUtil.file(path),isExact);
}
@ -239,7 +241,7 @@ public class FileTypeUtil {
* @return 类型
* @throws IORuntimeException 读取文件引起的异常
*/
public static String getTypeByPath(String path) throws IORuntimeException {
public static String getTypeByPath(final String path) throws IORuntimeException {
return getTypeByPath(path,false);
}
@ -252,7 +254,6 @@ public class FileTypeUtil {
*/
private static String readHex8192Upper(final InputStream in) throws IORuntimeException {
try {
final int i = in.available();
return IoUtil.readHex(in, Math.min(8192, in.available()), false);
} catch (final IOException e) {
throw new RuntimeException(e);
@ -266,7 +267,7 @@ public class FileTypeUtil {
* @return 16进制字符串
* @throws IORuntimeException IO异常
*/
private static String readHex64Upper(InputStream in) throws IORuntimeException {
private static String readHex64Upper(final InputStream in) throws IORuntimeException {
return IoUtil.readHex(in, 64, false);
}
}

View File

@ -1,9 +1,9 @@
package cn.hutool.core.io;
package cn.hutool.core.io.file;
import cn.hutool.core.compress.ZipUtil;
import cn.hutool.core.io.file.FileReader;
import cn.hutool.core.io.file.*;
import cn.hutool.core.io.file.FileWriter;
import cn.hutool.core.io.BomReader;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.io.stream.BOMInputStream;
import cn.hutool.core.io.unit.DataSizeUtil;

View File

@ -1,6 +1,5 @@
package cn.hutool.core.io.file;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.func.Wrapper;
import cn.hutool.core.util.CharsetUtil;

View File

@ -1,6 +1,5 @@
package cn.hutool.core.io.file;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;

View File

@ -1,6 +1,5 @@
package cn.hutool.core.io.file;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.watch.SimpleWatcher;
import cn.hutool.core.lang.func.SerConsumer;

View File

@ -2,7 +2,6 @@ package cn.hutool.core.io.file;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Console;

View File

@ -1,7 +1,7 @@
package cn.hutool.core.io.resource;
import cn.hutool.core.classloader.ClassLoaderUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.net.url.URLUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.io.resource;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.net.url.URLUtil;

View File

@ -2,7 +2,7 @@ package cn.hutool.core.io.resource;
import cn.hutool.core.collection.iter.EnumerationIter;
import cn.hutool.core.collection.iter.IterUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.classloader.ClassLoaderUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.io.resource;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.net.url.URLUtil;

View File

@ -2,7 +2,7 @@ package cn.hutool.core.io.resource;
import java.io.File;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
/**
* Web root资源访问对象

View File

@ -1,6 +1,6 @@
package cn.hutool.core.io.watch;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.watch.watchers.WatcherChain;
import cn.hutool.core.text.StrUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.net.multipart;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.text.StrUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.net.multipart;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.text.StrUtil;
/**

View File

@ -4,7 +4,7 @@ import cn.hutool.core.bean.NullWrapperBean;
import cn.hutool.core.classloader.ClassLoaderUtil;
import cn.hutool.core.convert.BasicType;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.net.url.URLDecoder;
import cn.hutool.core.net.url.URLUtil;

View File

@ -2102,4 +2102,36 @@ public class ArrayUtil extends PrimitiveArrayUtil {
final Set<T> elementSet = SetUtil.of(Arrays.asList(array));
return elementSet.size() != array.length;
}
/**
* array数组是否以prefix开头每个元素的匹配使用{@link ObjUtil#equals(Object, Object)}匹配
* <ul>
* <li>array和prefix为同一个数组即array == prefix返回{@code true}</li>
* <li>array或prefix为空数组null或length为0的数组返回{@code true}</li>
* <li>prefix长度大于array返回{@code false}</li>
* </ul>
*
* @param array 数组
* @param prefix 前缀
* @param <T> 数组元素类型
* @return 是否开头
*/
public static <T> boolean startWith(final T[] array, final T[] prefix) {
if (array == prefix) {
return true;
}
if(isEmpty(array)){
return isEmpty(prefix);
}
if (prefix.length > array.length) {
return false;
}
for (int i = 0; i < prefix.length; i++) {
if (ObjUtil.notEquals(array[i], prefix[i])) {
return false;
}
}
return true;
}
}

View File

@ -1,7 +1,7 @@
package cn.hutool.core.util;
import cn.hutool.core.io.CharsetDetector;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.text.StrUtil;
import java.io.File;

View File

@ -18,8 +18,7 @@ public class PrimitiveArrayUtil {
*/
public static final int INDEX_NOT_FOUND = -1;
// ---------------------------------------------------------------------- isEmpty
// region ----- isEmpty
/**
* 数组是否为空
*
@ -99,8 +98,9 @@ public class PrimitiveArrayUtil {
public static boolean isEmpty(final boolean[] array) {
return array == null || array.length == 0;
}
// endregion
// ---------------------------------------------------------------------- isNotEmpty
// region ----- isNotEmpty
/**
* 数组是否为非空
@ -181,8 +181,9 @@ public class PrimitiveArrayUtil {
public static boolean isNotEmpty(final boolean[] array) {
return false == isEmpty(array);
}
// endregion
// ---------------------------------------------------------------------- resize
// region ----- resize
/**
* 生成一个新的重新设置大小的数组<br>
@ -203,8 +204,9 @@ public class PrimitiveArrayUtil {
}
return newArray;
}
// endregion
// ---------------------------------------------------------------------- addAll
// region ----- addAll
/**
* 将多个数组合并在一起<br>
@ -461,8 +463,9 @@ public class PrimitiveArrayUtil {
}
return result;
}
// endregion
// ---------------------------------------------------------------------- split
// region ----- split
/**
* 拆分byte数组为几个等份最后一份按照剩余长度分配空间
@ -472,7 +475,7 @@ public class PrimitiveArrayUtil {
* @return 拆分后的数组
*/
public static byte[][] split(final byte[] array, final int len) {
int amount = array.length / len;
final int amount = array.length / len;
final int remainder = array.length % len;
// 兼容切片长度大于原数组长度的情况
final boolean hasRemainder = remainder > 0;
@ -493,8 +496,9 @@ public class PrimitiveArrayUtil {
}
return arrays;
}
// endregion
// ---------------------------------------------------------------------- indexOfLastIndexOfcontains
// region ----- indexOfLastIndexOfcontains
/**
* 返回数组中指定元素所在位置未找到返回{@link #INDEX_NOT_FOUND}
@ -895,8 +899,9 @@ public class PrimitiveArrayUtil {
public static boolean contains(final boolean[] array, final boolean value) {
return indexOf(array, value) > INDEX_NOT_FOUND;
}
// endregion
// ------------------------------------------------------------------- Wrap and unwrap
// region ----- Wrap and unwrap
/**
* 将原始类型数组包装为包装类型
@ -1250,8 +1255,9 @@ public class PrimitiveArrayUtil {
}
return array;
}
// endregion
// ------------------------------------------------------------------- sub
// region ----- sub
/**
* 获取子数组
@ -1548,8 +1554,9 @@ public class PrimitiveArrayUtil {
}
return Arrays.copyOfRange(array, start, end);
}
// endregion
// ------------------------------------------------------------------- remove
// region ----- remove
/**
* 移除数组中对应位置的元素<br>
@ -1693,7 +1700,7 @@ public class PrimitiveArrayUtil {
return result;
}
// ---------------------------------------------------------------------- removeEle
// region ----- removeEle
/**
* 移除数组中指定的元素<br>
@ -1814,8 +1821,9 @@ public class PrimitiveArrayUtil {
public static boolean[] removeEle(final boolean[] array, final boolean element) throws IllegalArgumentException {
return remove(array, indexOf(array, element));
}
// endregion
// ---------------------------------------------------------------------- reverse
// region ----- reverse
/**
* 反转数组会变更原数组
@ -2088,8 +2096,9 @@ public class PrimitiveArrayUtil {
public static boolean[] reverse(final boolean[] array) {
return reverse(array, 0, array.length);
}
// endregion
// ------------------------------------------------------------------------------------------------------------ min and max
// region ------------------------------------------- min and max
/**
* 取最小值
@ -2370,8 +2379,9 @@ public class PrimitiveArrayUtil {
}
return max;
}
// endregion
// ---------------------------------------------------------------------- shuffle
// region ----- shuffle
/**
* 打乱数组顺序会变更原数组
@ -2636,8 +2646,9 @@ public class PrimitiveArrayUtil {
return array;
}
// endregion
// ---------------------------------------------------------------------- swap
// region ----- swap
/**
* 交换数组中两个位置的值
@ -2791,7 +2802,7 @@ public class PrimitiveArrayUtil {
return array;
}
// ---------------------------------------------------------------------- asc and desc
// region ----- asc and desc
/**
* 检查数组是否升序{@code array[i] <= array[i+1]}<br>
@ -3111,7 +3122,257 @@ public class PrimitiveArrayUtil {
return false;
}
}
return true;
}
// endregion
// region ----- startWith
/**
* array数组是否以prefix开头
* <ul>
* <li>array和prefix为同一个数组即array == prefix返回{@code true}</li>
* <li>array或prefix为空数组null或length为0的数组返回{@code true}</li>
* <li>prefix长度大于array返回{@code false}</li>
* </ul>
*
* @param array 数组
* @param prefix 前缀
* @return 是否开头
*/
public static boolean startWith(final boolean[] array, final boolean[] prefix) {
if (array == prefix) {
return true;
}
if(isEmpty(array)){
return isEmpty(prefix);
}
if (prefix.length > array.length) {
return false;
}
for (int i = 0; i < prefix.length; i++) {
if (array[i] != prefix[i]) {
return false;
}
}
return true;
}
/**
* array数组是否以prefix开头
* <ul>
* <li>array和prefix为同一个数组即array == prefix返回{@code true}</li>
* <li>array或prefix为空数组null或length为0的数组返回{@code true}</li>
* <li>prefix长度大于array返回{@code false}</li>
* </ul>
*
* @param array 数组
* @param prefix 前缀
* @return 是否开头
*/
public static boolean startWith(final byte[] array, final byte[] prefix) {
if (array == prefix) {
return true;
}
if(isEmpty(array)){
return isEmpty(prefix);
}
if (prefix.length > array.length) {
return false;
}
for (int i = 0; i < prefix.length; i++) {
if (array[i] != prefix[i]) {
return false;
}
}
return true;
}
/**
* array数组是否以prefix开头
* <ul>
* <li>array和prefix为同一个数组即array == prefix返回{@code true}</li>
* <li>array或prefix为空数组null或length为0的数组返回{@code true}</li>
* <li>prefix长度大于array返回{@code false}</li>
* </ul>
*
* @param array 数组
* @param prefix 前缀
* @return 是否开头
*/
public static boolean startWith(final char[] array, final char[] prefix) {
if (array == prefix) {
return true;
}
if(isEmpty(array)){
return isEmpty(prefix);
}
if (prefix.length > array.length) {
return false;
}
for (int i = 0; i < prefix.length; i++) {
if (array[i] != prefix[i]) {
return false;
}
}
return true;
}
/**
* array数组是否以prefix开头
* <ul>
* <li>array和prefix为同一个数组即array == prefix返回{@code true}</li>
* <li>array或prefix为空数组null或length为0的数组返回{@code true}</li>
* <li>prefix长度大于array返回{@code false}</li>
* </ul>
*
* @param array 数组
* @param prefix 前缀
* @return 是否开头
*/
public static boolean startWith(final double[] array, final double[] prefix) {
if (array == prefix) {
return true;
}
if(isEmpty(array)){
return isEmpty(prefix);
}
if (prefix.length > array.length) {
return false;
}
for (int i = 0; i < prefix.length; i++) {
if (array[i] != prefix[i]) {
return false;
}
}
return true;
}
/**
* array数组是否以prefix开头
* <ul>
* <li>array和prefix为同一个数组即array == prefix返回{@code true}</li>
* <li>array或prefix为空数组null或length为0的数组返回{@code true}</li>
* <li>prefix长度大于array返回{@code false}</li>
* </ul>
*
* @param array 数组
* @param prefix 前缀
* @return 是否开头
*/
public static boolean startWith(final float[] array, final float[] prefix) {
if (array == prefix) {
return true;
}
if(isEmpty(array)){
return isEmpty(prefix);
}
if (prefix.length > array.length) {
return false;
}
for (int i = 0; i < prefix.length; i++) {
if (array[i] != prefix[i]) {
return false;
}
}
return true;
}
/**
* array数组是否以prefix开头
* <ul>
* <li>array和prefix为同一个数组即array == prefix返回{@code true}</li>
* <li>array或prefix为空数组null或length为0的数组返回{@code true}</li>
* <li>prefix长度大于array返回{@code false}</li>
* </ul>
*
* @param array 数组
* @param prefix 前缀
* @return 是否开头
*/
public static boolean startWith(final int[] array, final int[] prefix) {
if (array == prefix) {
return true;
}
if(isEmpty(array)){
return isEmpty(prefix);
}
if (prefix.length > array.length) {
return false;
}
for (int i = 0; i < prefix.length; i++) {
if (array[i] != prefix[i]) {
return false;
}
}
return true;
}
/**
* array数组是否以prefix开头
* <ul>
* <li>array和prefix为同一个数组即array == prefix返回{@code true}</li>
* <li>array或prefix为空数组null或length为0的数组返回{@code true}</li>
* <li>prefix长度大于array返回{@code false}</li>
* </ul>
*
* @param array 数组
* @param prefix 前缀
* @return 是否开头
*/
public static boolean startWith(final long[] array, final long[] prefix) {
if (array == prefix) {
return true;
}
if(isEmpty(array)){
return isEmpty(prefix);
}
if (prefix.length > array.length) {
return false;
}
for (int i = 0; i < prefix.length; i++) {
if (array[i] != prefix[i]) {
return false;
}
}
return true;
}
/**
* array数组是否以prefix开头
* <ul>
* <li>array和prefix为同一个数组即array == prefix返回{@code true}</li>
* <li>array或prefix为空数组null或length为0的数组返回{@code true}</li>
* <li>prefix长度大于array返回{@code false}</li>
* </ul>
*
* @param array 数组
* @param prefix 前缀
* @return 是否开头
*/
public static boolean startWith(final short[] array, final short[] prefix) {
if (array == prefix) {
return true;
}
if(isEmpty(array)){
return isEmpty(prefix);
}
if (prefix.length > array.length) {
return false;
}
for (int i = 0; i < prefix.length; i++) {
if (array[i] != prefix[i]) {
return false;
}
}
return true;
}
// endregion
}

View File

@ -4,11 +4,10 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Console;
import cn.hutool.core.map.BiMap;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.compress;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.resource.FileResource;
import cn.hutool.core.util.CharsetUtil;
import org.junit.Ignore;

View File

@ -1,7 +1,7 @@
package cn.hutool.core.convert;
import cn.hutool.core.convert.impl.ArrayConverter;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Console;
import org.junit.Assert;
import org.junit.Ignore;

View File

@ -1,5 +1,7 @@
package cn.hutool.core.io;
import cn.hutool.core.io.file.FileTypeUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.lang.Console;
import org.junit.Assert;
@ -85,4 +87,11 @@ public class FileTypeUtilTest {
final String type = FileTypeUtil.getType(inputStream);
Console.log(type);
}
@Test
public void issueI6MACITest() {
final File file = FileUtil.file("text.txt");
final String type = FileTypeUtil.getType(file);
Assert.assertEquals("txt", type);
}
}

View File

@ -2,6 +2,7 @@ package cn.hutool.core.io;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.file.LineSeparator;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.CharsetUtil;

View File

@ -1,5 +1,6 @@
package cn.hutool.core.io;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.io.stream.EmptyOutputStream;
import cn.hutool.core.lang.Console;

View File

@ -1,6 +1,5 @@
package cn.hutool.core.io.file;
import cn.hutool.core.io.FileUtil;
import org.junit.Ignore;
import org.junit.Test;

View File

@ -1,6 +1,5 @@
package cn.hutool.core.io.file;
import cn.hutool.core.io.FileUtil;
import org.junit.Ignore;
import org.junit.Test;

View File

@ -1,6 +1,5 @@
package cn.hutool.core.io.file;
import cn.hutool.core.io.FileUtil;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;

View File

@ -3,7 +3,6 @@ package cn.hutool.core.io.file;
import org.junit.Ignore;
import org.junit.Test;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.CharsetUtil;
public class TailerTest {

View File

@ -1,6 +1,6 @@
package cn.hutool.core.io.resource;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;
import org.junit.Assert;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.thread;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.RuntimeUtil;

View File

@ -617,7 +617,7 @@ public class ArrayUtilTest {
@Test
public void subTest() {
final int[] arr = {1, 2, 3, 4, 5};
int[] empty = new int[0];
final int[] empty = new int[0];
Assert.assertArrayEquals(empty, ArrayUtil.sub(arr, 2, 2));
Assert.assertArrayEquals(empty, ArrayUtil.sub(arr, 5, 5));
Assert.assertArrayEquals(empty, ArrayUtil.sub(arr, 5, 7));
@ -689,4 +689,34 @@ public class ArrayUtilTest {
Assert.assertTrue(ArrayUtil.hasSameElement(e));
}
@Test
public void startWithTest() {
boolean b = ArrayUtil.startWith(new String[]{}, new String[]{});
Assert.assertTrue(b);
b = ArrayUtil.startWith(new String[]{"1", "2", "3"}, new String[]{"1"});
Assert.assertTrue(b);
b = ArrayUtil.startWith(new String[]{"1"}, new String[]{"1"});
Assert.assertTrue(b);
b = ArrayUtil.startWith((String[])null, null);
Assert.assertTrue(b);
}
@Test
public void startWithTest2() {
boolean b = ArrayUtil.startWith(new int[]{}, new int[]{});
Assert.assertTrue(b);
b = ArrayUtil.startWith(new int[]{1,2,3}, new int[]{1});
Assert.assertTrue(b);
b = ArrayUtil.startWith(new int[]{1}, new int[]{1});
Assert.assertTrue(b);
b = ArrayUtil.startWith((int[])null, null);
Assert.assertTrue(b);
}
}

View File

@ -2,7 +2,7 @@ package cn.hutool.core.util;
import cn.hutool.core.compress.ZipReader;
import cn.hutool.core.compress.ZipUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.lang.Console;
import cn.hutool.core.text.StrUtil;

View File

@ -1,7 +1,7 @@
package cn.hutool.crypto;
import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ArrayUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.crypto.digest;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ArrayUtil;

View File

@ -1,7 +1,7 @@
package cn.hutool.crypto.digest.mac;
import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.codec.HexUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.crypto;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.crypto.asymmetric.KeyType;

View File

@ -1,7 +1,7 @@
package cn.hutool.db;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.text.StrUtil;
import org.junit.Ignore;
import org.junit.Test;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.compress.archiver;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.compress.archiver;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.compress.extractor;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.compress.extractor;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;

View File

@ -1,7 +1,7 @@
package cn.hutool.extra.ftp;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.util.CharUtil;

View File

@ -1,7 +1,7 @@
package cn.hutool.extra.ftp;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.lang.Assert;

View File

@ -1,7 +1,7 @@
package cn.hutool.extra.mail;
import cn.hutool.core.lang.builder.Builder;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.management;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import java.io.Serializable;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.qrcode;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.swing.img.ImgUtil;
import com.google.zxing.BarcodeFormat;

View File

@ -6,7 +6,7 @@ import cn.hutool.core.bean.copier.ValueProvider;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.collection.iter.ArrayIter;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.map.CaseInsensitiveMap;

View File

@ -6,7 +6,7 @@ import cn.hutool.core.bean.copier.ValueProvider;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.collection.iter.ArrayIter;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.map.CaseInsensitiveMap;

View File

@ -2,7 +2,7 @@ package cn.hutool.extra.ssh;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.extra.ftp.AbstractFtp;
import cn.hutool.extra.ftp.FtpConfig;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.template;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import java.io.BufferedOutputStream;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.template.engine.enjoy;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.id.IdUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.extra.template.Template;

View File

@ -1,7 +1,7 @@
package cn.hutool.extra.template.engine.freemarker;
import cn.hutool.core.classloader.ClassLoaderUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateConfig;

View File

@ -7,7 +7,7 @@ import org.thymeleaf.templateresolver.FileTemplateResolver;
import org.thymeleaf.templateresolver.ITemplateResolver;
import org.thymeleaf.templateresolver.StringTemplateResolver;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateConfig;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.template.engine.wit;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.map.Dict;
import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateConfig;

View File

@ -1,7 +1,7 @@
package cn.hutool.extra.xml;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.util.CharsetUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.compress;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.extra.compress.archiver.StreamArchiver;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.compress;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.extra.compress.extractor.Extractor;
import org.junit.Ignore;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.ftp;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.extra.ssh.Sftp;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.mail;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;

View File

@ -1,7 +1,7 @@
package cn.hutool.extra.qrcode;
import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.text.StrUtil;

View File

@ -1,7 +1,7 @@
package cn.hutool.http.client.body;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.HttpResource;

View File

@ -1,6 +1,6 @@
package cn.hutool.http.client.body;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.StreamProgress;
import cn.hutool.core.io.file.FileNameUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.http.server;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.net.url.URLEncoder;

View File

@ -1,7 +1,7 @@
package cn.hutool.http.server.action;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.http.server.HttpServerRequest;
import cn.hutool.http.server.HttpServerResponse;

View File

@ -1,7 +1,7 @@
package cn.hutool.http;
import cn.hutool.core.codec.BaseN.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.StreamProgress;
import cn.hutool.core.lang.Console;

View File

@ -1,6 +1,6 @@
package cn.hutool.http;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.regex.ReUtil;
import cn.hutool.core.util.CharsetUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.http;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.resource.MultiFileResource;
import cn.hutool.core.lang.Console;
import cn.hutool.core.map.MapUtil;

View File

@ -1,7 +1,7 @@
package cn.hutool.http.server;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.net.multipart.UploadFile;
import cn.hutool.http.meta.ContentType;

View File

@ -1,8 +1,7 @@
package cn.hutool.json;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.file.FileReader;
import cn.hutool.core.reflect.TypeReference;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.util.ObjUtil;

View File

@ -2,7 +2,7 @@ package cn.hutool.json;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.ConvertException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.map.Dict;
import cn.hutool.core.reflect.TypeReference;
import cn.hutool.core.util.CharsetUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.poi.csv;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;

View File

@ -1,6 +1,6 @@
package cn.hutool.poi.csv;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.func.SerConsumer;

View File

@ -4,7 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.iter.ArrayIter;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;

View File

@ -1,6 +1,6 @@
package cn.hutool.poi.excel;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.streaming.SXSSFSheet;

View File

@ -1,6 +1,6 @@
package cn.hutool.poi.excel;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.func.SerBiConsumer;
import cn.hutool.poi.excel.cell.CellEditor;

View File

@ -1,7 +1,7 @@
package cn.hutool.poi.excel;
import cn.hutool.core.exceptions.DependencyException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.regex.ReUtil;

View File

@ -3,7 +3,7 @@ package cn.hutool.poi.excel;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.comparator.IndexedComparator;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;

View File

@ -1,7 +1,7 @@
package cn.hutool.poi.excel;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.poi.excel.sax;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.poi.exceptions.POIException;
import java.io.File;

View File

@ -1,6 +1,6 @@
package cn.hutool.poi.word;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.poi.exceptions.POIException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;

View File

@ -1,6 +1,6 @@
package cn.hutool.poi.word;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.file.FileNameUtil;

View File

@ -2,7 +2,7 @@ package cn.hutool.poi.csv;
import cn.hutool.core.annotation.Alias;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.CharsetUtil;

View File

@ -2,7 +2,7 @@ package cn.hutool.poi.csv;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.CharsetUtil;
import lombok.AllArgsConstructor;

View File

@ -1,6 +1,6 @@
package cn.hutool.poi.csv;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.CharsetUtil;
import org.junit.Ignore;

View File

@ -1,6 +1,6 @@
package cn.hutool.poi.csv;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.func.SerConsumer;
import cn.hutool.core.util.CharsetUtil;
import org.junit.Ignore;

View File

@ -2,7 +2,7 @@ package cn.hutool.poi.excel;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.poi.excel.style.StyleUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.poi.excel;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import org.junit.Assert;
import org.junit.Test;

View File

@ -2,7 +2,7 @@ package cn.hutool.poi.excel;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.text.StrUtil;

View File

@ -2,7 +2,7 @@ package cn.hutool.poi.excel;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.lang.id.IdUtil;
import cn.hutool.core.map.MapUtil;

Some files were not shown because too many files have changed in this diff Show More