2017-04-22 32 views
1

我打算在使用java的特定路径中创建一个xml文件。 问题是如果我给它的空间编码的文件路径是'%20'在空格中。 请帮我解决这个问题。由我给如何在java中删除文件路径编码%20

文件路径 - “F:/备份文件/ testng2.xml”
编码后 - “F:/Backup%20Files/testng2.xml”

代码:

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformer = transformerFactory.newTransformer(); 
DOMSource source = new DOMSource(doc); 
StreamResult result = new StreamResult(new File("F:/Backup Files/testng2.xml"));  
transformer.transform(source, result); 
System.out.println("File saved successfully"); 

错误:

javax.xml.transform.TransformerException: java.io.FileNotFoundException: F:\Backup%20Files\testng2.xml (The system cannot find the path specified) 
    at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:297) 
    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:330) 
    at FrameworkKeywords.ConfigurationFunctions.generateTestngXmlFile(ConfigurationFunctions.java:87) 
    at FrameworkKeywords.ConfigurationFunctions.main(ConfigurationFunctions.java:29) 
Caused by: java.io.FileNotFoundException: F:\Backup%20Files\testng2.xml (The system cannot find the path specified) 
    at java.io.FileOutputStream.open0(Native Method) 
    at java.io.FileOutputStream.open(Unknown Source) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:287) 
    ... 3 more 
--------- 
java.io.FileNotFoundException: F:\Backup%20Files\testng2.xml (The system cannot find the path specified) 
    at java.io.FileOutputStream.open0(Native Method) 
    at java.io.FileOutputStream.open(Unknown Source) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:287) 
    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:330) 
    at FrameworkKeywords.ConfigurationFunctions.generateTestngXmlFile(ConfigurationFunctions.java:87) 
    at FrameworkKeywords.ConfigurationFunctions.main(ConfigurationFunctions.java:29) 

回答

1

尝试增加.getAbsolutePath()File,如下所示:

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
    Transformer transformer = transformerFactory.newTransformer(); 
    DOMSource source = new DOMSource(doc); 
    StreamResult result = new StreamResult(new File("F:/Backup Files/testng2.xml").getAbsolutePath());   
    transformer.transform(source, result); 
    System.out.println("File saved successfully"); 
+0

非常感谢@Plirkee。你的答案非常有用。它为我工作。 – Baskar