利用JDOM把JPG图象数据写入XML一个简单例子
2012-04-03 18:45
585 查看
转载自:http://www.cjsdn.net/post/view?bid=5&id=45013&sty=1&tpg=11&age=0
代码在JBUILDER上测试过
第一步
首先读取图象文件
接下来转换成文本
利用JDOM来写XML文件
文件生成了,打开bb.xml可以看到BASE64的编码
第二步把bb.xml的数据还原
用JDOM解析bb.xml,读取CDATA对象,通过CDATA对象取得二进制数据,写文件完成。
代码在JBUILDER上测试过
第一步
首先读取图象文件
public static byte[] getBytesFromFile(File file) throws IOException { InputStream is = new FileInputStream(file); long length = file.length(); if (length > Integer.MAX_VALUE) { return null; } byte[] bytes = new byte[ (int) length]; int offset = 0; int numRead = 0; while (offset < bytes.length && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) { offset += numRead; } if (offset < bytes.length) { throw new IOException("Could not completely read file " + file.getName()); } is.close(); return bytes; }
接下来转换成文本
public String getBinaryFile(java.io.File file) { String result = ""; try { result = new BASE64Encoder().encode(this.getBytesFromFile(file)); } catch (Exception exp) { JOptionPane.showMessageDialog(this, exp); return null; } return result; }
利用JDOM来写XML文件
try { InputStream is = new FileInputStream(jpgFile); OutputStream out = new FileOutputStream("E:\\bb.xml"); BufferedInputStream bis = new BufferedInputStream(is); Element rootElement = new Element("root"); Document myDocument = new Document(rootElement); rootElement.addContent(new CDATA(this.getBinaryFile(jpgFile))); XMLOutputter outputter = new XMLOutputter(" ", true); outputter.output(myDocument, out); bis.close(); is.close(); out.close(); } catch (Exception ee) { JOptionPane.showMessageDialog(this, "file can't be writed"); return; } }
文件生成了,打开bb.xml可以看到BASE64的编码
第二步把bb.xml的数据还原
用JDOM解析bb.xml,读取CDATA对象,通过CDATA对象取得二进制数据,写文件完成。
CDATA cdata ; try { SAXBuilder builder = new SAXBuilder(); Document ad = builder.build(xmlFile); Element rootElement = ad.getRootElement(); java.util.List list = rootElement.getMixedContent(); java.util.Iterator itr = list.iterator(); FileOutputStream fout = new FileOutputStream("E:\\1.jpg"); while(itr.hasNext()) { Object o = itr.next(); if (o instanceof CDATA) { cdata = (CDATA)o; fout.write(new sun.misc.BASE64Decoder().decodeBuffer(cdata.getText())); fout.close(); break; } } } catch (Exception eep) { JOptionPane.showMessageDialog(this, "read xml error"); return; }
相关文章推荐
- 利用JDOM把JPG图象数据写入XML一个简单例子
- 一个简单的使用XMLHttpRequest获得服务器数据的例子
- Java中最简单的把数据写入xml文件的方法----jdom之xml操作
- 利用ajax技术验证数据是否存在的一个简单例子
- 一个简单的使用jdom解析xml例子
- Java中最简单的把数据写入xml文件的方法----jdom之xml操作
- 一个在ASP.NET中利用服务器控件GridView实现数据增删改查的例子
- Linux下C语言实现的简单使用线程向FIFO里写入与读取数据的例子
- 一个简单但详细的解释Windows文件映射读取数据文件的例子
- 二分法(折半法)查找数据的一个简单例子
- 用dom4j写一个xml 简单例子
- 一个Linux内核利用init_task进行进程管理的简单例子
- unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- 利用XML开发留言板简单的例子
- 对于orale中的表数据类型的一个简单例子
- 利用 JavaScript 数据绑定实现一个简单的 MVVM 库
- 一个简单的例子演示:模仿微博里面的通过浏览器的滚动条来动态加载数据
- Java利用xml将大批量数据导出到excel的一个方法
- 一个可以生成复杂结构的json数据的简单例子
- hibernate级联操 同时向2张表插入数据(一对多的关联,一个简单的例子说明)