AsynchronousFileChannel用于jar中的文件

时间:2017-08-29 15:01:37

标签: java spring classpath nio channel

有没有办法为类路径中存储在jar中的文件打开AsynchronousFileChannel

如果我尝试直接创建Path,我会FileSystemNotFoundException。 如果我先创建文件系统:

URI uri = ...; //get the URI of a file in a jar
String[] array = uri.toString().split("!");
FileSystem fs = FileSystems.newFileSystem(URI.create(array[0]), Collections.emptyMap());
Path path = fs.getPath(array[1]);
AsynchronousFileChannel ch = AsynchronousFileChannel.open(path);

它与UnsupportedOperationException爆炸:(

有没有办法实现这个目标?

我的项目是Spring(并且使用ClassPathResource),因此Spring特定的解决方案可以工作。

1 个答案:

答案 0 :(得分:1)

JDK中的zip文件系统提供程序不支持异步I / O,因此这就是抛出UOE的原因。