Java io 库:File.toString() 和 File.getPath() 有什么区别

lol*_*ski 2 java jvm scala

...因为看起来两者都返回相同的字符串 - 看看这个 Scala 代码:

scala> val f = new File("log.txt")
scala> f.getPath
// res6: String = log
scala> f.toString
// res7: String = log
Run Code Online (Sandbox Code Playgroud)

Dan*_*ral 5

该方法在所有Java 类toString()上定义。它用于调试目的,除非用户明确定义,否则除了向用户显示之外不能依赖它进行任何其他操作。

实际上,版本之间的输出并没有真正改变,并且在许多情况下,您可以有理由相信它将是您想要的,但是原则上,您应该避免使用除toString()向用户打印内容之外的任何其他内容。

这就是getPath()存在的原因。方法具有定义明确的输出值,也保证可以被采用表示路径的方法接受。String

因此,如果您要在内部使用该路径,请使用getPath(). 如果您要将其打印作为调试辅助工具,请使用toString().