文件行读效率测试
scanner、buffer reader、jdk8 stream、apache common io
一、先看下代码
1 | public static void main(String[] args) throws IOException { |
100W条真实数据测试结果:
1 | ------------************************------------- |
1000W条真实数据测试结果:
1 | ------------************************------------- |
总结:
scanner:
1 | // Tries to read more input. May block. |
buffer reader
1 | // 初始大小为8192字节 |
JDK stream
1 | public static Stream<String> lines(Path path, Charset cs) throws IOException { |
common io
1 | public boolean hasNext() { |
所以出了Scanner用的自己的缓存机制,其他的都用的buffer reader的缓存机制,所以后面的三种方法效果差不多,不过笔者还是喜欢jdk8的stream机制,所以选择了jdk8的