写两个方法在这里,做个记录,免得以后忘了;public void save(IFileDelegate file, Object object) throws IOException ... { SysDesignDiagram designDiagram = (SysDesignDiagram) object; if(StringUtils.isEmpty(designDiagram.getName()))...{ String path = FileUtil.toPackageWithoutExtension(file.getSourceRelativePath()); designDiagram.setName(path); } ByteArrayOutputStream outStream = new ByteArrayOutputStream(); Resource resource = this.createResource(); SysDesignFactory SysDesignFactory = new SysDesignFactoryImpl(); DocumentRoot documentRoot = (DocumentRoot) SysDesignFactory .createDocumentRoot(); documentRoot .getMixed() .add( SysDesignPackage.Literals.DOCUMENT_ROOT__SYS_DESIGN_DIAGRAM, object); resource.getContents().add(documentRoot); resource.save(outStream, getOptions()); ByteArrayInputStream inStream = new ByteArrayInputStream(outStream .toByteArray()); try ...{ if(!file.exists()) file.create(inStream); else file.setContents(inStream); } catch (Exception e) ...{ throw new IOException("save file error."); } finally ...{ IOUtils.closeQuietly(inStream); } }创建资源 protected Resource createResource() ... { ResourceFactoryImpl resourceFactory = new SysDesignResourceFactoryImpl(); return resourceFactory.createResource(URI .createURI(SysDesignPackage.eNS_URI)); } public Object parse(IFileDelegate file, IProgressMonitor monitor) throws ModelParseException ... { if (file.exists()) ...{ InputStream inStream = null; try ...{ inStream = file.getContents(); SysDesignDiagram diagram = (SysDesignDiagram) this.parse( inStream, monitor); return diagram; } finally ...{ IOUtils.closeQuietly(inStream); } } return null; }