xml文件.

读取properties文件.
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ReadPropertiesFile {

    
public void readPropertiesFile(String fileName) throws FileNotFoundException {
        String str 
= "";
        Properties prop 
= new Properties();
        
        InputStream stream 
= null
        
        
//读取这个类在同一包中的properties文件
        
//stream = getClass().getClassLoader().getResourceAsStream(fileName);
        System.out.println("path:" + getClass().getResource(fileName));
        
        
        
//读取SRC下的的properties文件
        String path = getClass().getResource("/").getPath();
        stream 
= new BufferedInputStream(new FileInputStream(new File(path+fileName)));

        
try {
            prop.load(stream);
            str 
= prop.getProperty("localname");
            System.out.println(
"localname:" + str);
            System.out.println(
"properties:" + prop);
            stream.close();

        }
 catch (IOException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

    }


    
/**
     * 
@param args
     * 
@throws FileNotFoundException 
     
*/

    
public static void main(String[] args) throws FileNotFoundException {
        
// TODO Auto-generated method stub
        new ReadPropertiesFile().readPropertiesFile("config.properties");

    }

}

 

 

读取xml文件

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.xml.sax.XMLFilter;


public class XMLProperties {
    
private File file;

    
private Document doc;

    
private Map propertyCache;

    
public XMLProperties(byte[] fileContent) throws IOException {
        propertyCache 
= new HashMap();

        
// 临时注消,本项目中不考虑写入问题
        
// if (!file.canWrite()) {
        
// throw new IOException("XML properties file must be writable: "
        
// + fileName);
        
// }

        Reader reader 
= null;
        
try {
            reader 
= new InputStreamReader(new ByteArrayInputStream(fileContent), "UTF-8");
            SAXReader saxreader 
= new SAXReader();
            DataUnformatFilter format 
= new DataUnformatFilter();
            saxreader.setXMLFilter((XMLFilter) format);
            doc 
= saxreader.read(reader);
        }
 catch (Exception e) {
            
throw new IOException(e.getMessage());
        }
 finally {
            
try {
                reader.close();
            }
 catch (Exception exception1) {
            }

        }


    }


    
public XMLProperties(String fileName) throws IOException {
        propertyCache 
= new HashMap();
        String path 
= getClass().getResource("/").getPath();
        file 
= new File(path+fileName);
        
if (!file.exists()) {
            File tempFile 
= new File(file.getParentFile(), file.getName() + ".tmp");
            
if (tempFile.exists()) {
                tempFile.renameTo(file);
            }
 else {
                
throw new FileNotFoundException("XML properties file does not exist: "
                        
+ fileName);
            }

        }

        
if (!file.canRead()) {
            
throw new IOException("XML properties file must be readable: " + fileName);
        }


        
// 临时注消,本项目中不考虑写入问题
        
// if (!file.canWrite()) {
        
// throw new IOException("XML properties file must be writable: "
        
// + fileName);
        
// }

        Reader reader 
= null;
        
try {
            reader 
= new InputStreamReader(new FileInputStream(file), "UTF-8");
            SAXReader saxreader 
= new SAXReader();
//            DataUnformatFilter format = new DataUnformatFilter();
//            saxreader.setXMLFilter((XMLFilter) format);
            doc = saxreader.read(reader);
        }
 catch (Exception e) {
            
throw new IOException(e.getMessage());
        }
 finally {
            
try {
                reader.close();
            }
 catch (Exception exception1) {
            }

        }

    }


    
public synchronized String getProperty(String name) {
        String value 
= (String) propertyCache.get(name);
        
if (value != null{
            
return value;
        }

        String propName[] 
= parsePropertyName(name);
        Element element 
= doc.getRootElement();
        
for (int i = 0; i < propName.length; i++{
            
// element = element.getChild(propName[i]);
            element = element.element(propName[i]);
            
if (element == null{
                
return null;
            }

        }


        value 
= element.getText();
        
if ("".equals(value)) {
            
return null;
        }
 else {
            value 
= value.trim();
            propertyCache.put(name, value);
            
return value;
        }

    }


    
public String[] getChildrenProperties(String parent) {
        String propName[] 
= parsePropertyName(parent);
        Element element 
= doc.getRootElement();
        
for (int i = 0; i < propName.length; i++{
            element 
= element.element(propName[i]);
            
if (element == null{
                
return new String[0];
            }

        }


        List children 
= element.elements();
        
int childCount = children.size();
        String childrenNames[] 
= new String[childCount];
        
for (int i = 0; i < childCount; i++{
            childrenNames[i] 
= ((Element) children.get(i)).getName();
        }


        
return childrenNames;
    }


    
public synchronized void setProperty(String name, String value) {
        
if (value == null{
            value 
= "";
        }

        propertyCache.put(name, value);
        String propName[] 
= parsePropertyName(name);
        Element element 
= doc.getRootElement();
        
for (int i = 0; i < propName.length; i++{
            
if (element.element(propName[i]) == null{
                element.addElement(propName[i]);
            }

            element 
= element.element(propName[i]);
        }


        element.setText(value);
        saveProperties();
    }


    
public synchronized void deleteProperty(String name) {
        propertyCache.remove(name);
        String propName[] 
= parsePropertyName(name);
        Element element 
= doc.getRootElement();
        
for (int i = 0; i < propName.length - 1; i++{
            element 
= element.element(propName[i]);
            
if (element == null{
                
return;
            }

        }


        
// element.remove(propName[propName.length - 1]);
        element.remove((Element) element.elements(propName[propName.length - 1]));
        saveProperties();
    }


    
private synchronized void saveProperties() {
        Writer writer 
= null;
        
boolean error = false;
        File tempFile 
= null;
        
try {
            tempFile 
= new File(file.getParentFile(), file.getName() + ".tmp");
            
// XMLOutputter outputter = new XMLOutputter(" ", true);
            writer = new OutputStreamWriter(new FileOutputStream(tempFile), "UTF-8");
            
// outputter.output(doc, writer);
            OutputFormat fmt = new OutputFormat("    "true);
            XMLWriter xmlwriter 
= new XMLWriter(writer, fmt);
            xmlwriter.write(doc);
            xmlwriter.close();
        }
 catch (Exception e) {
            error 
= true;
        }
 finally {
            
try {
                writer.close();
            }
 catch (Exception e) {
                error 
= true;
            }

        }

        
if (!error) {
            error 
= false;
            
if (!file.delete()) {
                
return;
            }

            
try {
                
// XMLOutputter outputter = new XMLOutputter(" ", true);
                writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
                
// outputter.output(doc, writer);

                OutputFormat fmt 
= new OutputFormat("    "true);
                XMLWriter xmlwriter 
= new XMLWriter(writer, fmt);
                xmlwriter.write(doc);
                xmlwriter.close();
            }
 catch (Exception e) {
                error 
= true;
            }
 finally {
                
try {
                    writer.close();
                }
 catch (Exception e) {
                    error 
= true;
                }

            }

            
if (!error) {
                tempFile.delete();
            }

        }

    }


    
private String[] parsePropertyName(String name) {
        List propName 
= new ArrayList(5);
        
for (StringTokenizer tokenizer = new StringTokenizer(name, "."); tokenizer
                .hasMoreTokens(); propName.add(tokenizer.nextToken())) 
{
            ;
        }

        
return (String[]) propName.toArray(new String[propName.size()]);
    }


    
public static String parseSysPath(String path) {
        
try {
            path 
= URLDecoder.decode(path, "UTF-8");
        }
 catch (Exception e) {
        }

        
return path;
    }

    
    
public static void main(String[] args) throws IOException {
        XMLProperties xp 
= new XMLProperties("testEmp.xml");
        System.out.println(xp.getProperty(
"response.validate"));
        System.out.println(xp.getProperty(
"response.employee.username"));
        System.out.println(xp.getProperty(
"response.employee.phone"));
        xp.getChildrenProperties(
"response");
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值