mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
add filter read line
This commit is contained in:
parent
0d8dfb73d8
commit
4b7da5119b
@ -13,6 +13,7 @@ import cn.hutool.core.io.file.Tailer;
|
|||||||
import cn.hutool.core.io.resource.ResourceUtil;
|
import cn.hutool.core.io.resource.ResourceUtil;
|
||||||
import cn.hutool.core.io.unit.DataSizeUtil;
|
import cn.hutool.core.io.unit.DataSizeUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.lang.Filter;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.CharUtil;
|
import cn.hutool.core.util.CharUtil;
|
||||||
import cn.hutool.core.util.CharsetUtil;
|
import cn.hutool.core.util.CharsetUtil;
|
||||||
@ -49,6 +50,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Predicate;
|
||||||
import java.util.jar.JarFile;
|
import java.util.jar.JarFile;
|
||||||
import java.util.zip.CRC32;
|
import java.util.zip.CRC32;
|
||||||
import java.util.zip.Checksum;
|
import java.util.zip.Checksum;
|
||||||
@ -2222,6 +2224,19 @@ public class FileUtil extends PathUtil {
|
|||||||
return readLines(file, CharsetUtil.CHARSET_UTF_8);
|
return readLines(file, CharsetUtil.CHARSET_UTF_8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从文件中读取每一行数据
|
||||||
|
*
|
||||||
|
* @param file 文件
|
||||||
|
* @param filter 过滤器
|
||||||
|
* @return 文件中的每行内容的集合List
|
||||||
|
* @throws IORuntimeException IO异常
|
||||||
|
* @since 3.1.1
|
||||||
|
*/
|
||||||
|
public static List<String> readUtf8Lines(File file, Predicate<String> filter) throws IORuntimeException {
|
||||||
|
return readLines(file, CharsetUtil.CHARSET_UTF_8, filter);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从文件中读取每一行数据
|
* 从文件中读取每一行数据
|
||||||
*
|
*
|
||||||
@ -2246,6 +2261,25 @@ public class FileUtil extends PathUtil {
|
|||||||
return readLines(file, charset, new ArrayList<>());
|
return readLines(file, charset, new ArrayList<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从文件中读取每一行数据
|
||||||
|
*
|
||||||
|
* @param file 文件
|
||||||
|
* @param charset 字符集
|
||||||
|
* @param filter 过滤器
|
||||||
|
* @return 文件中的每行内容的集合List
|
||||||
|
* @throws IORuntimeException IO异常
|
||||||
|
*/
|
||||||
|
public static List<String> readLines(File file, Charset charset, Predicate<String> filter) throws IORuntimeException {
|
||||||
|
final List<String> result = new ArrayList<>();
|
||||||
|
readLines(file, charset, (LineHandler) line -> {
|
||||||
|
if (Boolean.TRUE.equals(filter.test(line))) {
|
||||||
|
result.add(line);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按行处理文件内容,编码为UTF-8
|
* 按行处理文件内容,编码为UTF-8
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user