本文为 Java 注册 classpath 协议读取文件的目的就是要让下面的代码能工作起来
1 2 |
String text = IOUtils.toString(new URL("classpath:/db.properties"), "UTF-8"); System.out.println(text); |
假设在 classpath 下有个文件 db.properties, 比如在 Maven 项目的 src/main/resources 目录中,或是在某个 jar 包的根位置。如果我们直接执行上面的代码将会得到异常
Exception in thread "main" java.net.MalformedURLException: unknown protocol: classpath
at java.net.URL.<init>(URL.java:617)
at java.net.URL.<init>(URL.java:507)
说是不认识的 classpath 协议。
前面代码是有实际用途的,比如说我们使用 XML 时就能支持远程协议
1 2 3 |
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse("https://www.w3schools.com/xml/note.xml"); System.out.println(document.getDocumentElement().getTagName()); |