解析XML截断文件路径

时间:2010-01-20 20:53:07

标签: java file filenotfoundexception

我收到一个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。

2 个答案:

答案 0 :(得分:3)

尝试更改

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

看看会发生什么。

答案 1 :(得分:0)

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

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