【问题标题】:Parsing XML Truncates File Path解析 XML 会截断文件路径
【发布时间】:2010-01-20 20:53:07
【问题描述】:

我收到带有以下代码的 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。

【问题讨论】:

    标签: java file filenotfoundexception


    【解决方案1】:

    尝试改变

    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)));
    

    看看会发生什么。

    【讨论】:

    • 它正在抛出 FileNotFoundException。我已经更新了问题。
    • @Ben Cool,我已经从我的回答中删除了这个问题;-)
    • 您的两个建议都有效。我最终使用了 URI。谢谢。
    【解决方案2】:

    尝试使用带有方案的完整 url 而不是 unc 路径。

    file://xxx.xxx.xxx.xxx/path/to/file.xml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-23
      • 2023-04-04
      • 2017-04-23
      • 2013-06-05
      • 2013-06-04
      • 2014-01-16
      • 2013-03-19
      • 2014-01-16
      相关资源
      最近更新 更多