2007-06-22
EMF序列化注意事项
关键字: EMF 序列化 恢复
在对EMF模型保存成xml文件的时候,有时候如果模型存在bug导致保存过程失败,会出现xml文件的内容全部清空的情况,这样做很不保险,因此需要对出现异常情况要能做到恢复到修改前的样子,其做法是对XMLResourceImpl这个实现类的public void save(Map options) throws IOException方法进行复写,下面是我的做法:
java 代码
- public void save(Map options) throws IOException {
- URIConverter uriConverter = getURIConverter();
- URI url = getURI();
- OutputStream os = uriConverter.createOutputStream(url);
- StringBuffer sb = new StringBuffer();
- InputStream is = null;
- try {
- is = uriConverter.createInputStream(url);
- } catch (Exception e) {
- // 当创建文件时,由于文件还未存在而抛出的异常
- }
- if (is != null) {
- byte[] b = new byte[4096];
- for (int n; (n = is.read(b)) != -1;) {
- sb.append(new String(b, 0, n));
- }
- }
- try {
- save(os, getOptions(options));
- } catch (Exception e) {
- // 保存失败,恢复修改前的内容
- os.write(sb.toString().getBytes());
- throw new RuntimeException(e);
- } finally {
- if (is != null)
- is.close();
- os.close();
- }
- }
发表评论
我的相册
P1100915
共 146 张
共 146 张
最近加入圈子
链接
最新评论
-
电话面试收集
不错,博主应该已经面试过很多人了吧!
-- by sunrise353 -
28岁转行做IT(zt)
25岁以前我还在见证钢铁是怎样炼成的,25岁的时候我想知道网站是怎么回事,于是我 ...
-- by wangyifeng -
28岁转行做IT(zt)
26岁 办证刻章
-- by hellowei -
28岁转行做IT(zt)
我26岁半,以前做通信,见到此文,很高兴.另外,我在ext论坛上好像看到一个 e ...
-- by llp20_2000 -
jms学习笔记
你好,我正在研究JMS,其中有很多问题不明白,希望你能够教我一下,谢谢了,我的q ...
-- by 6308907







评论排行榜