彻底解决xml读写乱码问题

 读写xml时中文乱码是很常见的事,先总结了一个读写工具类:
package  xmlRw;

import  java.io.File;
import  java.io.FileInputStream;
import  java.io.FileOutputStream;
import  java.io.InputStreamReader;
import  java.io.OutputStreamWriter;

import  org.dom4j.Document;
import  org.dom4j.io.OutputFormat;
import  org.dom4j.io.SAXReader;
import  org.dom4j.io.XMLWriter;

public   class  RWXmlByDom4j {

    
/**
     * 读XML文件
     * 
@param  filePath 文件路径 
     * 
@param  encoding 文件编码
     * 
@return  Document
     
*/
    
public   static  Document readXml(String filePath,String encoding){
        
try  {

            SAXReader saxReader 
=   new  SAXReader();
            FileInputStream file 
=   new  FileInputStream(filePath);
            
            InputStreamReader reader  
=   new  InputStreamReader(file,encoding);
            Document document 
=  saxReader.read(reader);
            
            
return  document;
        }
catch (Exception e){
            e.printStackTrace();
            
return   null ;
        }

    }
    

    
/**
     * 将Document 写入文件
     * 
@param  doc Document
     * 
@param  filePath 写入文件的路径
     * 
@param  encoding 文件编码
     * 
@return  成功与否
     
*/
    
public   static   boolean  writeXml(Document doc ,String filePath,String encoding){
        
try  {
            
/**  格式化输出,类型IE浏览一样  */
            OutputFormat format 
=  OutputFormat.createPrettyPrint();

            
/**  指定XML编码  */
            format.setEncoding(encoding);
            
            
// 进行文件编码设置
            FileOutputStream fos  =   new  FileOutputStream( new  File(filePath));
            OutputStreamWriter osw 
=   new  OutputStreamWriter(fos,encoding);
            
            XMLWriter writer 
=   new  XMLWriter(osw, format);
            writer.write(doc);
            writer.close();

            
return   true ;
        } 
catch  (Exception ex) {
            ex.printStackTrace();
            
return   false ;
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值