Java中独立于文件系统的文件和路径?

我正在使用Java 8编写与文件系统交互的应用程序。 为了使测试更容易,我将一个FileSystem注入到我的方法中,可以将其换出来进行测试。 我目前在我的unit testing中使用jimfs ,在生产中使用DefaultFileSystem.getFileSystem()

我希望我的代码能够独立于平台并在unit testing和生产之间移植,但是,我认为标准库中的类可能会阻止这种情况。

例如, java.io.File包含:

 private static final FileSystem fs = DefaultFileSystem.getFileSystem(); 

似乎File总是引用真实文件,这对我的unit testing来说是一个问题。

另一方面, Path只是一个接口,它应该让事情变得简单,除了它有一个创建File的方法!

 File toFile(); 
  • 哪些Java类与真实文件系统绑定?
  • 我有什么选择编写Filesystem可移植代码?