您的位置:首页 > 编程语言 > Java开发

java读配置文件(xml、property)的简单例子

2011-03-30 12:30 531 查看
package com.test;
import java.io.InputStream;
import java.util.Properties;
/**
*
* CopyRight (C) www.blogjava.net/ilovezmh All rights reserved.
*
* WuHan Inpoint Information Technology Development,Inc.
*
* Author zhu
*
* @version 1.0    2007-2-2
*
* Base on : JDK1.5
*
*/
public class ReadPro {
public String getPara(String fileName) {
   Properties prop= new Properties();
   try {
    //ClassLoader cl = this.getClass().getClassLoader();
    //InputStream is = cl.getResourceAsStream(fileName);
    InputStream is = this.getClass().getResourceAsStream(fileName);
    prop.load(is);
    if(is!=null) is.close();
   }
   catch(Exception e) {
    System.out.println(e+"file "+fileName+" not found");
   }
   return prop.getProperty("ip");
}
public static void main(String[] args) {
   ReadPro pro = new ReadPro();
   System.out.println(pro.getPara("ip.property"));
}
//-----------------------------------
//ip.property内容如下:
//ip:192.168.0.1
}
注意:上面使用Class和ClassLoader都是可以的,只是使用的时候路径需要注意下
     Class是把class文件所在的目录做为根目录,
     ClassLoader是把加载所有classpath的目录为根目录,也就是“..../classes”。
     如:
     使用ClassLoader:this.getClass().getClassLoader().getResourceAsStream("com/test/ip.property");
     使用Class:this.getClass().getResourceAsStream("/com/test/ip.property");
                         如果类与配置文件在同一目录下,也可
                         this.getClass().getResourceAsStream("ip.property");
用jdom读xml文件的例子:
(jdom下载)
package com.test;
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.XMLOutputter;
import org.jdom.output.Format;
/**
*
* CopyRight (C) www.blogjava.net/ilovezmh All rights reserved.
*
* WuHan Inpoint Information Technology Development,Inc.
*
* Author zhu
*
* @version 1.0    2007-2-1
*
* Base on : JDK1.5
*
*/
public class XMLReader {
public void createXML(){
   Element root=new Element("books");
   Document doc=new Document(root);
   Element book1 = new Element("book");
   //Element name1=new Element("name");
   //name1.setAttribute(new Attribute("hot","true"));
   //name1.addContent("程序员");
   //Element price1=new Element("price");
   //price1.addContent("10.00");
   //book1.addContent(name1);
   //book1.addContent(price1);
   Element book2 = new Element("book");
   //Element name2=new Element("name");
   //name2.setAttribute(new Attribute("hot","false"));
   //name2.addContent("读者");
   //Element price2=new Element("price");
   //price2.addContent("3.00");
   //book2.addContent(name2);
   //book2.addContent(price2);
   book1.addContent(new Element("name").addContent("程序员").setAttribute("hot","true"));
   book1.addContent(new Element("price").addContent("10.00"));
   book2.addContent(new Element("name").addContent("青年文摘").setAttribute("hot","false"));
   book2.addContent(new Element("price").addContent("3.00"));
   root.addContent(book1);
   root.addContent(book2);
   try
   {
    XMLOutputter outer=new XMLOutputter(Format.getPrettyFormat().setEncoding("gb2312"));
    outer.output(doc,new FileOutputStream("book.xml"));
   }catch(IOException e){
    e.printStackTrace();
   }
}
public void readXML() throws FileNotFoundException, IOException{
   Document myDoc=null;
   try
   {
    SAXBuilder sb=new SAXBuilder();
    myDoc=sb.build(new FileInputStream("book.xml"));
   }catch(JDOMException e){
    e.printStackTrace();
   }catch(NullPointerException e){
    e.printStackTrace();
   }
   Element root=myDoc.getRootElement(); //先得到根元素
   List books=root.getChildren();//root.getChildren("book");
   for (Iterator iter1 = books.iterator();iter1.hasNext(); ) {
       Element book = (Element) iter1.next();
       System.out.println("bookname:"+book.getChild("name").getText());
       System.out.println("hot:"+book.getChild("name").getAttributeValue("hot"));
       System.out.println("price:"+book.getChild("price").getText());
   }
}
public static void main(String args[]) throws FileNotFoundException, IOException {
   XMLReader x=new XMLReader();
   x.createXML();
   x.readXML();
}
}
生成的book.xml文件如下:


    程序员
    10.00

    青年文摘
    3.00
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: