簡體   English   中英

如何從同一包中讀取file.xml?

[英]How can I read file.xml from the same package?

我正在嘗試讀取Properties.xml文件,該文件包含在與我的課程相同的程序包中。

我正在使用以下代碼用新值更新我的xml文件:

到目前為止,我只想讀取文件:

public void UPdateXML(String filename) throws Exception {
    this.filename = filename;
        System.out.println("Into update xml class");
    try {   
        InputStream fis=BACENGPropertiesFile.class.getResourceAsStream(filename);
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
        Document doc = docBuilder.parse((InputStream) fis);

        System.out.println(fis);
        System.out.println(doc);

    Node child = doc.getFirstChild();
        System.out.println(child);

似乎文件存在並且正在作為ImputStream讀取。 但是,當我嘗試將文件解析為文檔(doc)時,該值為null。

這是服務器日志的出口:

Into update xml class
java.io.BufferedInputStream@78355ed4
[#document: null]
[properties: null]

Properties xml文件具有以下結構:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
 <properties>
  <entry key="dataImport.path">/Users/Admin/Documents/</entry>
 </properties>

有人可以告訴我怎么了嗎?

沒有任何錯誤。 您的文檔不為null :它打印為:

[#document: null]

如果為null ,則將其打印出來:

null

順便說一句,為什么不通過Properties.loadFromXML()加載屬性?

Properties p = new Properties();
try (InputStream in = BACENGPropertiesFile.class.getResourceAsStream(filename)) {
    p.loadFromXML(in);
}

您將Properties.xml放在哪個包中? 如果在UPdateXML軟件包中,請更改:

InputStream fis=BACENGPropertiesFile.class.getResourceAsStream(filename);

InputStream fis=UPdateXML.class.getResourceAsStream(filename);

無論如何,您的xml文件位於哪個包中,應該選擇該包下的哪些類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM