Java库,如org.apache.commons.io.FileUtils,但包含实例方法而不是静态方法

时间:2012-11-19 22:41:48

标签: java file io

我想知道在FileUtils中只有静态方法有什么意义?有没有理由没有实例方法?我相信FileUtils是线程安全的(纠正我,如果我错了大声笑),但我确实有一堆线程同时使用FileUtils方法,似乎有多个实例比使用同步代码更好。是否有模仿FileUtils库的库,但不包含任何静态方法?

1 个答案:

答案 0 :(得分:9)

  

我想知道在FileUtils中只有静态方法有什么意义?有没有理由没有实例方法?

因为FileUtils是无状态方法的集合。为它引入一个对象是没有意义的 - 它包含什么?

  

我相信FileUtils是线程安全的。

这完全取决于你想要实现的目标和方式。如果你是尝试从多个线程中读取多个甚至相同的文件,它将正常工作。但是,如果您尝试例如要从多个线程中写入同一文件,您可能会遇到一些问题。然而,这些问题将源于您使用相同的文件来编写内容,因此实际上并不使FileUtils不是线程安全的。