首页 > 其他 > 详细

统计文件行数

时间:2019-11-19 19:30:56      阅读:81      评论:0      收藏:0      [点我收藏+]
 1 @Test
 2 public void testLineReader() throws IOException {
 3     File testFile = new File("D:\\temp\\test\\line.txt");
 4     if (!testFile.exists()) {
 5         testFile.getParentFile().mkdirs();
 6         testFile.createNewFile();
 7         FileOutputStream fos = new FileOutputStream(testFile, true);
 8         long line = 10000000;
 9         while (line-- > 0) {
10             fos.write((line + System.getProperty("line.separator")).getBytes());
11         }
12     }
13 
14     long startTime = System.currentTimeMillis();
15     long count = 0;
16     for(int i = 0; i<1000; i++)
17     count = Files.lines(Paths.get(testFile.getPath())).count();
18     long endTime = System.currentTimeMillis();
19     System.out.println("files.lines lines:" + count +"spend time:" + (endTime - startTime) + " ms");
20 
21     long startTime2 = System.currentTimeMillis();
22     long fileLength = testFile.length();
23     for(int i = 0; i<1000; i++){
24         LineNumberReader lineNumberReader = new LineNumberReader(new FileReader(testFile));
25         lineNumberReader.skip(fileLength);
26         count = lineNumberReader.getLineNumber();
27         lineNumberReader.close();
28     }
29     long endTime2 = System.currentTimeMillis();
30     System.out.println("lines:" + count +"spend time:" + (endTime2 - startTime2) + " ms");
31 }

测试结果:

files.lines lines:10000000spend time:333404 ms
lines:10000000spend time:174362 ms

结论:

1.使用LineNumberReader统计速度是Files.lines的两倍

2.Files.lines代码比LineNumberReader要简洁许多

统计文件行数

原文:https://www.cnblogs.com/kwing0117/p/11891192.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!