首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >File.separator vs FileSystem.getSeparator() vs System.getProperty("file.separator")?

File.separator vs FileSystem.getSeparator() vs System.getProperty("file.separator")?
EN

Stack Overflow用户
提问于 2011-11-10 05:32:31
回答 2查看 149.4K关注 0票数 144

获得依赖于平台的“文件分隔符”平台似乎有三种相同的方法--独立的:

  • java.io.File.separator
  • java.nio.file.FileSystems.getDefault().getSeparator();
  • System.getProperty("file.separator")

我们如何决定何时使用哪一种?

他们之间有什么区别吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-10 05:46:59

System.getProperties()可以被对System.setProperty(String key, String value)的调用或命令行参数-Dfile.separator=/覆盖。

File.separator获取默认文件系统的分隔符。

FileSystems.getDefault()为您提供默认的文件系统。

FileSystem.getSeparator()为您获取文件系统的分隔符。请注意,作为一个实例方法,您可以使用它将不同的文件系统传递给默认代码以外的代码,如果您需要代码在一个JVM中的多个文件系统上操作的话。

票数 154
EN

Stack Overflow用户

发布于 2011-11-10 05:51:00

如果您的代码没有跨越文件系统边界,即您只是在处理一个文件系统,那么使用java.io.File.separator

如前所述,这将为FS获取默认分隔符。正如Bringer128所解释的那样,System.getProperty("file.separator")可以通过命令行选项被覆盖,并且不像java.io.File.separator那样安全。

最后一个版本是在Java 7中引入的java.nio.file.FileSystems.getDefault().getSeparator();,所以如果您希望代码能够跨旧版本移植,那么最好暂时忽略它。

因此,这些选项中的每一个几乎都与其他选项相同,但并不完全相同。选择一个适合你需要的。

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8075373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档