Java 7 为编写自定义文件系统引入了一个很棒的 API。考虑一个我不想实现新文件系统的用例,我只想调整现有文件系统的行为。例如,翻转从其中写入/读取的每一位。
在我看来,当前的 jdk 只是没有适当的设施。AbstractFileSystemProvider,WindowsFileSystemProvider 扩展的提供程序是包私有的,所以我不能重用它。我什至没有找到 Linux 的具体实现。
问题 #1:当前文件系统没有用于扩展的有用抽象。
假设我只为 Windows 扩展。WindowsFileSystemProvider 是公开的,所以我实际上可以轻松地覆盖 newByteChannel 并完成它。可惜!
问题 #2:WindowsFileSystem不是公开的,所以我实际上必须编写一个全新的 FileSystem 来引入一个新的 Provider。
我是否遗漏了什么,或者这个功能完全是原始的,还没有准备好被应用程序编写者使用?