Java里的Provider是什么?
黄舟
黄舟 2017-04-18 09:41:23
[Java讨论组]

敲了一段修改压缩文件内容的代码,如下:

public static void rarWriteTest() {
        Path tempRar = Paths.get("D:\\copy.rar");
        try (FileSystem workingFs =
            FileSystems.newFileSystem(tempRar, null)) {
            Path pathForFile = workingFs.getPath("/hello.txt");
            List<String> ls = new ArrayList<>();
            ls.add("Hello World!");

            Files.write(pathForFile, ls, Charset.defaultCharset(),
                        StandardOpenOption.WRITE, StandardOpenOption.CREATE);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }

运行报如下错:

Exception in thread "main" java.nio.file.ProviderNotFoundException: Provider not found
    at java.nio.file.FileSystems.newFileSystem(FileSystems.java:407)
    at io.StaticDemos.rarWriteTest(StaticDemos.java:43)
    at io.StaticDemos.main(StaticDemos.java:15)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

查了一下api,api这样写:

ProviderNotFoundException - if a provider supporting this file type cannot be located

然而并不明白啊,provider究竟是啥?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
巴扎黑

找到一篇文章可以参考一下:
NIO.2 Filesystem API

Abstract FileSystemProvider class stores immutable list of all
installed file system providers starting with default provider located
at first index. This list is also publicly available by calling
installedProviders method. Based on this description one can see, that
FileSystemProvider is typical implementation of factory design
pattern.

按这个描述来看FileSystemProvider实现的是一个工厂模式。你这应该是没有找到对应的处理rar格式文件的FileSystemProvider。
google的一下说java7有实现zip格式的,不过没找到rar的,估计得自己写一个。
zip的参考这里。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号