我现在正在查看一段 Java 代码,它采用一个 String 路径,并使用 URL resource = ClassLoader.getSystemClassLoader().getResource(pathAsString);
获取其 URL,然后调用 String path = resource.getPath()
,最后执行 new File(path);
。
还有打到 URL url = resource.toURI();
和 String file = resource.getFile()
的电话。
我现在完全糊涂了——我猜主要是因为术语的问题。谁能告诉我这些不同之处,或者提供一些防哑弹材料的链接?特别是 URI 到 URL 和 资源到文件?对我来说,它们应该是一样的,分别..。
这里解释了 getFile()
和 getPath()
之间的区别: GetFile ()和 getpath ()之间的区别是什么?(有趣的是,它们似乎都返回字符串,这可能给我的思维状态增加了很多... ...)
现在,如果我有一个引用 jar 文件中的类或包的定位器,那么这两者(即路径和文件字符串)是否会有所不同?
毕竟,abc0会给你带来 jar:file:/C:/path/to/my.jar!/com/example/
(注意叹号)。
URI和 网址用爪哇语之间的区别是前者没有编码空格吗?参考 Java 中冲突的文件、 URI 和 URL(这个答案很好地解释了两个术语 一般的,概念性的之间的差异: URI 标识和 URL 定位;)
最后——也是最重要的—— 为什么我需要 ABC0对象; 为什么一个资源(URL
)不够?(有 Resource 对象吗?)
对不起,如果这个问题有点杂乱无章,它只是反映了我的困惑... :)