有没有人碰巧知道下面两种阅读输入文件的方法之间的性能有什么区别?
谢谢.
谢谢.
Scanner input = new Scanner(new File("foo.txt"));
2)使用InputStreamReader和FileInputStream读取文件
InputStreamReader input = new InputStreamReader(new FileInputStream("foo.txt"));
解决方法
第一点是这些代码示例都不读取文件.这可能听起来很疯狂或不正确,但它是真的.他们实际上是打开一个文件进行阅读.而在他们实际做的方面,他们各自的效率可能没有很大的差异.
当涉及到实际读取文件时,最好的使用方法将取决于文件包含的内容,数据的内存算法等等.这将决定是否更好地使用扫描仪或一个原始的读者,从性能的角度,更重要的是从使您的代码可靠和可维护的角度.
最后,有可能这不会对您的代码的整体性能产生重大影响.我所说的是你过早地优化你的应用程序.您现在更好地忽略性能,并选择将使您的其余代码更简单的版本.当应用程序正常工作时,使用一些代表性的输入数据进行配置.分析将告诉您用绝对数据读取文件的时间以及与应用程序的其余部分相关的时间.这将告诉您是否值得尝试优化文件读取的努力.
我给出的唯一性能建议是,从无缓冲的输入流或读取器读取字符的字符是低效的.如果需要以这种方式读取文件,则应该将一个BufferedReader添加到堆栈中.