【发布时间】:2012-02-12 16:24:19
【问题描述】:
在处理文件时是否应该系统地使用File 类,或者在某些情况下可以使用Strings 来表示路径和文件名?
【问题讨论】:
-
有时URI 也可能是合适的。
-
如果您使用的是 Java 7,请查看
Path。
在处理文件时是否应该系统地使用File 类,或者在某些情况下可以使用Strings 来表示路径和文件名?
【问题讨论】:
Path。
如果您查看采用String 或File 的各种文件流/读取器/写入器类,您会发现采用String 的构造函数是构造函数的便利重载接受File。换句话说,String 构造函数通常从路径名字符串创建一个File 并调用另一个构造函数。
因此使用File 版本可能会节省构建新文件对象的时间。
另一方面,File 实例会比等效的String 占用更多的内存,并且创建File 实例的成本与打开和读取/写入文件的成本相比要小。
最重要的是,从性能角度来看,这对于小型应用程序可能无关紧要。对于大型应用程序,最合适的方法取决于应用程序实际在做什么;例如是否重复使用相同的文件。
正如 cmets 所说,还有其他方法可以“表示”文件/路径;例如"file:" URL 和 Java 7 Path 类。
【讨论】:
File 实例表示本地文件系统上的路径。如果这就是您想要的变量,那么它就是要使用的适当类。如果不是(例如简单的文件名,或另一台机器上的文件路径),请使用其他内容。
【讨论】:
File 类就是这样,一个类。您可以使用表示文件路径的字符串来构造它。但它需要额外的操作来处理文件。那时您很可能会承担大部分性能成本。文件IO、流读、写等。可以使用这个类来查找文件信息,包括权限。
如果您不执行这些操作之一,那么您应该考虑此线程中提到的其他替代方法之一。
【讨论】: