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