java xml文件内容替换_java读取xml文件并转换成对象,并进行修改
1.首先要寫(xiě)工具類(lèi),處理讀取和寫(xiě)入xml文件使用的工具。XMLUtil.java
importjava.io.FileInputStream;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.StringReader;importjava.io.StringWriter;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.JAXBException;importjavax.xml.bind.Marshaller;importjavax.xml.bind.Unmarshaller;/*** 封裝了XML轉(zhuǎn)換成object,object轉(zhuǎn)換成XML的代碼
*
*@authormscall
**/
public classXMLUtil {/*** 將對(duì)象直接轉(zhuǎn)換成String類(lèi)型的 XML輸出
*
*@paramobj
*@return
*/
public staticString convertToXml(Object obj) {//創(chuàng)建輸出流
StringWriter sw= newStringWriter();try{//利用jdk中自帶的轉(zhuǎn)換類(lèi)實(shí)現(xiàn)
JAXBContext context=JAXBContext.newInstance(obj.getClass());
Marshaller marshaller=context.createMarshaller();//格式化xml輸出的格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
marshaller.setProperty(Marshaller.JAXB_ENCODING,"UTF-8");//將對(duì)象轉(zhuǎn)換成輸出流形式的xml
marshaller.marshal(obj, sw);
}catch(JAXBException e) {
e.printStackTrace();
}returnsw.toString();
}/*** 將對(duì)象根據(jù)路徑寫(xiě)入指定的xml文件里
*
*@paramobj
*@parampath
*@return
*/
public static voidconvertToXml(Object obj, String path) {try{//利用jdk中自帶的轉(zhuǎn)換類(lèi)實(shí)現(xiàn)
JAXBContext context=JAXBContext.newInstance(obj.getClass());
Marshaller marshaller=context.createMarshaller();//格式化xml輸出的格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
marshaller.setProperty(Marshaller.JAXB_ENCODING,"GBK");//將對(duì)象轉(zhuǎn)換成輸出流形式的xml//創(chuàng)建輸出流
FileWriter fw= null;try{
fw= newFileWriter(path);
}catch(IOException e) {
e.printStackTrace();
}
marshaller.marshal(obj, fw);
}catch(JAXBException e) {
e.printStackTrace();
}
}/*** 將String類(lèi)型的xml轉(zhuǎn)換成對(duì)象*/
public static Object convertXmlStrToObject(Class>clazz, String xmlStr) {
Object xmlObject= null;try{
JAXBContext context=JAXBContext.newInstance(clazz);//進(jìn)行將Xml轉(zhuǎn)成對(duì)象的核心接口
Unmarshaller unmarshal=context.createUnmarshaller();
StringReader sr= newStringReader(xmlStr);
xmlObject=unmarshal.unmarshal(sr);
}catch(Exception e) {
e.printStackTrace();
}returnxmlObject;
}/*** 將file類(lèi)型的xml轉(zhuǎn)換成對(duì)象*/
public static Object convertXmlFileToObject(Class>clazz, String xmlPath) {
Object xmlObject= null;try{
JAXBContext context=JAXBContext.newInstance(clazz);
Unmarshaller unmarshaller=context.createUnmarshaller();
InputStreamReader isr=new InputStreamReader(new FileInputStream(xmlPath),"GBK");
xmlObject=unmarshaller.unmarshal(isr);
}catch(Exception e) {
e.printStackTrace();
}returnxmlObject;
}
}
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的java xml文件内容替换_java读取xml文件并转换成对象,并进行修改的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: painticon java_新人,关于
- 下一篇: java线程池饱和策略_线程池的饱和策略