使用到的第三方包:org.apache.commons.betwixt
代码片段如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
import org.apache.commons.betwixt.io.BeanReader; import org.apache.commons.betwixt.io.BeanWriter; /** ????? * 将javaBean 转成XML文件 ????? * ????? * @param bean ????? * javaBean对象 ????? * @return XML文件 ????? */ ???? public static File convertBean2XML(Object bean) ???? { ???????? File file = new File(FjhlUtils.generateFileName(Consts.XML_FILE_SUFFIX)); ???????? // FileWriter fw; ???????? BeanWriter beanWriter = null ; ???????? OutputStreamWriter fw; ???????? try ???????? { ???????????? fw = new OutputStreamWriter( new FileOutputStream(file), "UTF-8" ); ???????????? beanWriter = new BeanWriter(fw); ???????????? beanWriter.getXMLIntrospector().getConfiguration() ???????????????????? .setAttributesForPrimitives( false ); ???????????? beanWriter.getBindingConfiguration().setMapIDs( false ); ???????????? beanWriter.setEndOfLine( "\n" ); ???????????? beanWriter.enablePrettyPrint(); ???????????? beanWriter.setWriteEmptyElements( true ); ???????????? beanWriter.setEndTagForEmptyElement( true ); ???????????? beanWriter.writeXmlDeclaration(Consts.XML_TITLE); ???????????? beanWriter.write(bean); ???????????? beanWriter.flush(); ???????? } ???????? catch (IOException e) ???????? { ???????????? LOG.error( "将javaBean 转成XML文件时发生IO异常" , e); ???????? } ???????? catch (SAXException e) ???????? { ???????????? LOG.error( "将javaBean 转成XML文件时发生SAX解析异常" , e); ???????? } ???????? catch (IntrospectionException e) ???????? { ???????????? LOG.error( "将javaBean 转成XML文件时发生内省异常" , e); ???????? } ???????? finally ???????? { ???????????? try ???????????? { ???????????????? if (beanWriter != null ) ???????????????? { ???????????????????? beanWriter.close(); ???????????????????? beanWriter = null ; ???????????????? } ???????????? } ???????????? catch (IOException e) ???????????? { ???????????????? LOG.error( "转成XML文件时,关闭beanWriter失败" ,e); ???????????? } ???????? } ???????? return file; ???? } ?? ?? ? /** ????? * 将XML文件转成javaBean ????? * ????? * @param xmlFile ????? * XML文件 ????? * @param clazz ????? * 生成javaBean Class对象 ????? * @return Object javaBean对象 ????? */ ???? public static Object convertXML2Bean(File xmlFile, Class<?> clazz) ???? { ???????? Object bean = null ; ???????? BeanReader beanReader = new BeanReader(); ???????? beanReader.getXMLIntrospector().getConfiguration() ???????????????? .setAttributesForPrimitives( false ); ???????? beanReader.getBindingConfiguration().setMapIDs( false ); ???????? try ???????? { ???????????? beanReader.registerBeanClass(clazz); ???????????? bean = beanReader.parse(xmlFile); ???????? } ???????? catch (IntrospectionException e) ???????? { ???????????? LOG.error( "将XML文件转成javaBean时发生内省异常" , e); ???????? } ???????? catch (IOException e) ???????? { ???????????? LOG.error( "将XML文件转成javaBean时发生IO异常" , e); ???????? } ???????? catch (SAXException e) ???????? { ???????????? LOG.error( "将XML文件转成javaBean时发生SAX解析异常" , e); ???????? } ???????? return bean; ???? } |