我收到带有以下代码的 FileNotFoundException:
File dataFile = new File("\\xx.xxx.xx.xxx\PATH\TO\FILE.xml");
if(dataFile.isFile())
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
// Printing out File displays full path
Document doc = db.parse(dataFile);
}
这会导致 FileNotFoundException:\PATH\TO\FILE.xml。它似乎已将 IP 地址从路径中截断。我已经检查过路径名不包含任何空格,如果我在解析之前打印出 File 对象的路径,则会显示完整路径。有什么想法吗?
我正在运行 Java 1.5_14。
最佳答案
尝试改变
File dataFile = new File("\\xx.xxx.xx.xxx\PATH\TO\FILE.xml");
到
File dataFile = new File("\\\\xx.xxx.xx.xxx\\PATH\\TO\\FILE.xml");
记住,在 Java 中,\转义下一个字符...
编辑:假设您从以下行获得 FNFE:
Document doc = db.parse(dataFile);
那么这意味着datafile.isFile()
正在传递,因此该文件应该存在。仅出于测试目的,您可能需要尝试将其更改为:
Document doc = db.parse(dataFile.toURI().toString());
或
Document doc = db.parse(new InputSource(new FileReader(dataFile)));
看看会发生什么。
关于java - 解析 XML 截断文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2104879/