add method

This commit is contained in:
Looly 2022-02-22 21:52:07 +08:00
parent 801ce05f1a
commit 4e3f2153c5
3 changed files with 31 additions and 11 deletions

View File

@ -2,7 +2,7 @@
# 🚀Changelog
-------------------------------------------------------------------------------------------------------------
# 5.7.22 (2022-02-21)
# 5.7.22 (2022-02-22)
### 🐣新特性
* 【poi 】 ExcelUtil.readBySax增加对POI-5.2.0的兼容性issue#I4TJF4@gitee
@ -11,6 +11,7 @@
* 【json 】 新增TemporalAccessorSerializer
* 【core 】 使多个xxxBuilder实现Builder接口扩展CheckedUtilpr#545@Gitee
* 【core 】 CheckedUtil删除第二个参数为RuntimeException的方法
* 【core 】 FileUtil增加getTotalLines方法
### 🐞Bug修复
* 【cache 】 修复ReentrantCache.toString方法线程不安全问题issue#2140@Github

View File

@ -22,12 +22,31 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
import cn.hutool.core.util.ZipUtil;
import java.io.*;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.LineNumberReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.nio.file.*;
import java.nio.file.DirectoryNotEmptyException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
@ -554,23 +573,22 @@ public class FileUtil extends PathUtil {
}
/**
* 计算文件的总行数
* 计算文件的总行数<br>
* 读取文件采用系统默认编码一般乱码不会造成行数错误
*
* @param file 文件
* @return 该文件总行数
* @since 5.7.22
*/
public static int getTotalLines(File file) {
if (!isFile(file)) {
throw new IORuntimeException("input must be file");
if (false == isFile(file)) {
throw new IORuntimeException("Input must be a File");
}
try (
final BufferedReader reader = getReader(file, CharsetUtil.CHARSET_UTF_8);
final LineNumberReader lineNumberReader = new LineNumberReader(reader)
) {
try (final LineNumberReader lineNumberReader = new LineNumberReader(new java.io.FileReader(file))) {
// 设置起始为1
lineNumberReader.setLineNumber(1);
// 跳过文件中内容
//noinspection ResultOfMethodCallIgnored
lineNumberReader.skip(Long.MAX_VALUE);
// 获取当前行号
return lineNumberReader.getLineNumber();

View File

@ -63,6 +63,7 @@ public class RestTest {
.body(JSONUtil.createObj()
.set("advertiser_ids", new Long[] {1690657248243790L})
.set("fields", new String[] {"id", "name", "status"}).toString());
Console.log(request);
Console.log(request.execute().body());
}
}