[英]java FileNotFoundException while reading config xml file
我需要從動態Web項目中讀取config.xml文件。 我已將文件放在文件夾結構MyProj / WebContent / WEB-INF / classes / config.xml文件夾中。 當我打印文件new File(config.xml).getAbsolutePath()的絕對路徑時,它會檢查eclipse主目錄(C:\\ Temp \\ eclipse \\ eclipse)而不是我的項目主目錄(C:\\ Temp \\ MyProj )。 因此,我遇到了問題FIleNotFoundException。 如何告訴eclipse從我的項目目錄中檢查文件?
在Eclipse IDE中使用tomcat 7。
如果您的項目是動態Web應用程序,則意味着您應該遵守JEE規則,並且這些規則之一是:不要使用文件,而要使用資源。 您的Web應用程序將部署在可以安裝在任何地方的Web容器(例如Tomcat)中。 通過將配置文件作為資源訪問,可以在類路徑中搜索它們,該路徑更加靈活並且獨立於Web應用程序或容器的絕對文件位置。
如果將config.xml放在WEB-INF / classes中,它將位於您的類路徑中。 您應該將其作為資源而不是文件進行訪問。
我建議您提高有關如何在Java中管理和訪問資源的知識。
在課程中,您可以執行以下操作:
InputStream configInput=this.getClass().getResourceAsStream("/config.xml");
由於它看起來像是XML文件,因此可以使用XML解析器讀取它:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
...
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(this.getClass().getResourceAsStream("/config.xml"));
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.