java - 当 URL 以 "file://"开头时,URL.openstream 不起作用

标签 java url

下面的代码抛出了下面的异常:

URL u = new URL("file://D:/abc.xml");
InputStream input = u.openStream();

异常抛出:

Exception in thread "main" java.net.UnknownHostException: D
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.NetworkClient.openServer(NetworkClient.java:118)
at sun.net.ftp.FtpClient.openServer(FtpClient.java:488)
at sun.net.ftp.FtpClient.openServer(FtpClient.java:475)
at sun.net.www.protocol.ftp.FtpURLConnection.connect(FtpURLConnection.java:270)
at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:352)
at java.net.URL.openStream(URL.java:1010)
at com.nuance.nlu.JavaApiExmaple.main(Exmaple.java:191)
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  [../../../src/share/back/util.c:820]

但是如果我使用:

  • URL u = new URL("file:///D:/abc.xml");(文件后有 3 个斜杠),或者:
  • URL u = new URL("file:/D:/abc.xml");(文件后有 1 个斜线:)

代码行 InputStream input = u.openStream(); 执行得很好。

最佳答案

先看:What is the reason that file URLs start with three slashes: “file:///” etc?获取详细说明。

摘自该回答:

The complete syntax is file://host/path.

If the host is localhost, it can be omitted, resulting in file:///path.

关于java - 当 URL 以 "file://"开头时,URL.openstream 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10929456/

相关文章:

java - 创建 JsonArray

php - .htaccess 问题,我无法删除 .php

javascript - 我如何使用另一个网址如果我得到网址 (' ' )

php - 创建 PHP 'controller' 文件来构建网站上的所有页面

java - 使用按钮更新图形颜色

java - Spring 网络服务 : easy way to un-marshall a bean to XML client side?

java - 为什么我的算法在执行了几次之后变得更快了? ( java )

Delphi:使用 URL 转发下载文件

javascript - 如何在文本输入中放置文档网址?

java - 如何从android中的短信查询中分别获取一天中的时间,星期几和月份