当我使用System.in时,我有一个100000行的文件,获取输入需要1分钟以上,但当我使用文件读取输入时,它不需要时间。 什么是继续使用System.in但速度更快的解决方案?
答案 0 :(得分:2)
System.in逐行读取,而不是一次读取文件内容。所以它很慢。
答案 1 :(得分:1)
System.in
本质上很慢,因为它逐行获取数据(检查换行符),而不是从映射到虚拟内存中的文件执行大块复制。
没有真正的方法来加速System.in
,这听起来像读取文件会更加理想。
更新:您可能需要查看以下问题:What's the fastest way to read from System.in in Java?
答案 2 :(得分:0)
尝试更改system.in的流 System.setIn(new FileInputStream(fileName));
答案 3 :(得分:0)
如果要快速读取文件,则需要使用StringTokenizer。 https://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html