Java 读取/分析网络驱动器中存在的快捷方式文件时出现连接被拒绝异常
我尝试使用file:protocol从URL打开流,但Java 读取/分析网络驱动器中存在的快捷方式文件时出现连接被拒绝异常,java,xml,networking,java-io,jdom,Java,Xml,Networking,Java Io,Jdom,我尝试使用file:protocol从URL打开流,但URLConnection.getInputStream抛出相同的连接拒绝异常 如果您有任何建议,我们将不胜感激。这可能是一个与权限相关的问题:我过去有过这个问题。检查运行java代码的用户是否具有访问共享网络驱动器的权限。相关代码无法真正生成该错误消息 首先,简单地创建一个文件对象不会进行任何检查,因此请告诉我们您对该文件的实际操作 其次,使用字符串literal“\\\\bady\\SShare\\mart.xml”指定路径。由于Java
URLConnection.getInputStream
抛出相同的连接拒绝异常
如果您有任何建议,我们将不胜感激。这可能是一个与权限相关的问题:我过去有过这个问题。检查运行java代码的用户是否具有访问共享网络驱动器的权限。相关代码无法真正生成该错误消息 首先,简单地创建一个
文件
对象不会进行任何检查,因此请告诉我们您对该文件
的实际操作
其次,使用字符串literal“\\\\bady\\SShare\\mart.xml”
指定路径。由于Java中字符串文字的工作方式,这可以归结为字符串\\bady\SShare\mart.xml
,但是您的异常消息提到\\\\bady\\SShare\\mart.xml
,这显然是一个错误的路径
因此,请告诉我们您是如何获得该
文件的
对象的,以及您对该对象所做的操作。首先,我使用f.exists()检查该文件是否存在,并返回false。是否有更好的方法检查网络驱动器上存在的文件?然后我尝试使用JDOM解析输入xml文件,因此我创建了一个SAXBuilder对象,并在传递文件实例的基础上调用build,现在我看到以下错误-java.net.ConnectException:连接被拒绝:connectThis代码不调用parseXml()
,因此不可能产生此异常。
SAXBuilder builder = new SAXBuilder();
try {
File f = new File("\\\\bady\\SShare\\mart.xml");
System.out.println(f.exists()); // Returns False
System.out.println(f.length()); // Returns 0
Document document = builder.build(f); //IOException at this point
Element root = document.getRootElement();
Element paragraph = root.getChild("mart_element");
String content = paragraph.getText();
System.out.println("content = " + content);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Exception in thread "main" java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.Socket.connect(Socket.java:524)
at java.net.Socket.connect(Socket.java:474)
at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
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 JDOMElementTextContent.parseXml(JDOMElementTextContent.java:36)
at JDOMElementTextContent.main(JDOMElementTextContent.java:47)