Java:文件i / o调优

时间:2010-10-13 16:59:28

标签: java optimization file-io

我尝试创建一个排序文件生成器,它将硬编码的消息吐出到文件中,并根据用户输入略微改变某些字符串。由于我利用多态性,我有多个文件和接口。

我发现自己传递的文件参数多于一次,并开始重新思考我构建程序的方式。这让我想问一下,将文件作为参数传递给多个方法是否会产生巨大的性能影响?

感谢。

2 个答案:

答案 0 :(得分:3)

传递给方法的参数数量没有可衡量的性能影响。

但是,反复打开和关闭java.io.File{Input|Output}Stream会产生费用。并且您需要样板试试/最终代码以确保文件在使用后正确关闭。

更好的解决方案是将OutputStream传递给您的方法,并在顶级方法中打开一次文件。这也可以让您的代码最容易测试:您可以传递ByteArrayOutputStream而不是FileOutputStream

哦,并将FileOutputStream包裹在BufferedOutputStream

答案 1 :(得分:0)

我不太确定你到底传递了什么,一些代码示例会很有用。

我的第一个想法是,如果您遇到性能问题,那么您应该对应用程序进行概要分析。编写文件可能是瓶颈,而不是参数传递(记住 - 你将传递对象引用,而不是对象本身)。

但在开始任何(可能代价高昂的)重构之前,首先要衡量您的应用程序性能。