处理文件时使用String或File类

时间:2012-02-12 16:24:20

标签: java string file

在处理文件时是否应系统地使用File类,或者是否可以使用String来表示路径和文件名?

3 个答案:

答案 0 :(得分:4)

如果您查看采用StringFile的各种文件流/读者/编写器类,您将看到采用String的构造函数是采用File的构造函数的方便重载。换句话说,String构造函数通常从路径名字符串创建File并调用其他构造函数。

因此,使用File版本可能会保存构建新的File对象。

另一方面,File实例将占用比等效String更多的内存,与开放和阅读成本相比,创建File实例的成本较低/写一个文件。

最重要的是,从性能角度来看,它对于小规模应用程序来说无关紧要。对于大规模应用程序,最合适的方法取决于应用程序实际执行的操作;例如是否重复使用相同的文件。


正如评论所说,还有其他方法可以“表示”文件/路径;例如“file:”URL和Java 7 Path类。

答案 1 :(得分:1)

File实例表示本地文件系统上的路径。如果这是你想要的变量,那么它就是适当的类。如果不是(如简单文件名或另一台机器上的文件路径),请使用其他内容。

答案 2 :(得分:1)

File类只是一个类。您可以使用表示文件路径的字符串来构造它。但它需要一个额外的操作来对文件做一些事情。那时你很可能会承担大部分的性能成本。文件IO,流读取或写入等。您可以使用此类查找包括权限的文件信息。

如果您没有执行其中一项操作,那么您应该考虑此线程中提到的其他替代方案之一。