什么是更好的做法:保持fileInputStream长时间打开,或者打开和关闭它很多?

时间:2011-02-22 05:39:32

标签: java file-io

我在java中编写了一个小应用程序,每十秒左右就会在文本文件中写几行。最好是在循环外部初始化输入流并将其保持打开很长时间,或者每次需要使用它时打开和关闭它?

我不认为这个例子真的很重要,因为它是如此缓慢的循环,但我想知道未来的反思。那个相同的场景但与JDBC连接有关呢?..

非常感谢。

2 个答案:

答案 0 :(得分:3)

对于文件流,我想我会保持流打开。如果你永远打开和关闭它,那么开放可能会失败的可能性很小,因为有人在你上次写入文件后已经在编辑器中打开/锁定了文件。 (此外,系统调用打开和关闭文件不是免费的......)

对于JDBC案例,您不应该这样做。相反,您应该使用JDBC连接池,并让 负责打开/关闭连接。 (长时间挂在数据库连接上的一个问题是数据库可以关闭它。根据您的JDBC驱动程序,当您尝试使用已关闭的连接时,这可能会导致问题。)

答案 1 :(得分:1)

因为在你的情况下,它很少发生,每10秒一次。所以我想推荐'无状态'实现,意思是,打开文件,执行操作,然后在完成后关闭它。