mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
FileWriter
增加方法,可选是否追加换行符(issue#3858@Github)
This commit is contained in:
parent
7608e08c2e
commit
f3c97bdc4d
@ -629,10 +629,16 @@ public class FileUtil extends PathUtil {
|
||||
readChars = is.read(chars);
|
||||
}
|
||||
|
||||
// 最后一个字符为换行符,则单独计数行
|
||||
// Linux下最后一行要求必须有换行符,不能单独计算一行,此处交给用户选择
|
||||
if(lastLineSeparatorAsNewLine && c == CharUtil.CR){
|
||||
++count;
|
||||
if(lastLineSeparatorAsNewLine){
|
||||
// 最后一个字符为\r,则单独计数行
|
||||
if(c == CharUtil.CR){
|
||||
++count;
|
||||
}
|
||||
}else{
|
||||
// 最后一个字符为\n,则可选是否算作新行单独计数行
|
||||
if(c == CharUtil.LF){
|
||||
--count;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
|
@ -4,6 +4,7 @@ import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.io.file.LineSeparator;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@ -538,22 +539,31 @@ public class FileUtilTest {
|
||||
@Test
|
||||
public void getTotalLinesTest() {
|
||||
// 此文件最后一行有换行符,则最后的空行算作一行
|
||||
final int totalLines = FileUtil.getTotalLines(FileUtil.file("test_lines.csv"));
|
||||
int totalLines = FileUtil.getTotalLines(FileUtil.file("test_lines.csv"));
|
||||
assertEquals(8, totalLines);
|
||||
|
||||
totalLines = FileUtil.getTotalLines(FileUtil.file("test_lines.csv"), -1, false);
|
||||
Assertions.assertEquals(7, totalLines);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTotalLinesCrTest() {
|
||||
// 此文件最后一行有换行符,则最后的空行算作一行
|
||||
final int totalLines = FileUtil.getTotalLines(FileUtil.file("test_lines_cr.csv"));
|
||||
int totalLines = FileUtil.getTotalLines(FileUtil.file("test_lines_cr.csv"));
|
||||
assertEquals(8, totalLines);
|
||||
|
||||
totalLines = FileUtil.getTotalLines(FileUtil.file("test_lines_cr.csv"), -1, false);
|
||||
Assertions.assertEquals(7, totalLines);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTotalLinesCrlfTest() {
|
||||
// 此文件最后一行有换行符,则最后的空行算作一行
|
||||
final int totalLines = FileUtil.getTotalLines(FileUtil.file("test_lines_crlf.csv"));
|
||||
int totalLines = FileUtil.getTotalLines(FileUtil.file("test_lines_crlf.csv"));
|
||||
assertEquals(8, totalLines);
|
||||
|
||||
totalLines = FileUtil.getTotalLines(FileUtil.file("test_lines_crlf.csv"), -1, false);
|
||||
Assertions.assertEquals(7, totalLines);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Loading…
x
Reference in New Issue
Block a user