JTextPane 内容的保存:图文格式保存的解决
2013-10-16 15:25
183 查看
一般而言,JTextPane的getText只能得到String,不能对文字的格式,和里面的图文进行保存
使用HTMLEditorKit可以保存文字的格式,在JTextPane中没有图片的时候,这种方式很方便和简单,核心代码可见writeHtml方法,从实现来说就是将JTextPane中的Document对象使用HTMLEditorKit的write写到文件中即可。
但对于复杂的JTextPane来说,图片及其他各种各样的格式非常常见,杀手锏只有一种方法就是序列化,关于这点的核心代码可以见saveAsObj和ReadFromObj方法,即写的时候直接使用ObjectOutputStream的writeObject方法就可以了,而读先从ObjectInputstream中readObject中读出对象,然后使用docTextPane.setStyledDocument(doc);Validae()即可在界面上展示出来。
使用HTMLEditorKit可以保存文字的格式,在JTextPane中没有图片的时候,这种方式很方便和简单,核心代码可见writeHtml方法,从实现来说就是将JTextPane中的Document对象使用HTMLEditorKit的write写到文件中即可。
但对于复杂的JTextPane来说,图片及其他各种各样的格式非常常见,杀手锏只有一种方法就是序列化,关于这点的核心代码可以见saveAsObj和ReadFromObj方法,即写的时候直接使用ObjectOutputStream的writeObject方法就可以了,而读先从ObjectInputstream中readObject中读出对象,然后使用docTextPane.setStyledDocument(doc);Validae()即可在界面上展示出来。
public void wirteHTML() { StyledDocument doc = (StyledDocument) docTextPane.getDocument(); HTMLEditorKit kit = new HTMLEditorKit(); BufferedOutputStream out; try { File writeF = new File("D://share/tesss_html"); if (!writeF.exists()) { writeF.createNewFile(); } out = new BufferedOutputStream(new FileOutputStream(writeF)); kit.write(out, doc, doc.getStartPosition().getOffset(),doc.getLength()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (BadLocationException e) { e.printStackTrace(); } }
public void saveAsObj() { try { File writeF = new File("D://share/tesss_obj"); if (!writeF.exists()) { writeF.createNewFile(); } StyledDocument doc = (StyledDocument) docTextPane.getDocument(); FileOutputStream fos = new FileOutputStream("D://share/tesss_obj"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(doc); oos.flush(); oos.close(); } catch (IOException e) { e.printStackTrace(); } } public void readFromObj() { try { File writeF = new File("D://share/tesss_obj"); if (!writeF.exists()) { return; } FileInputStream fis = new FileInputStream("D://share/tesss_obj"); ObjectInputStream ois = new ObjectInputStream(fis); StyledDocument doc = (StyledDocument) ois.readObject(); ois.close(); docTextPane.setStyledDocument(doc); validate(); } catch (Exception e) { e.printStackTrace(); } }
相关文章推荐
- Python读取windows下记事本保存的UTF-8格式的内容,首行数据显示不正常的解决办法
- 解决textarea内容保存到MySQL再显示到html中没有换行的问题
- PHP文件保存出现的BOM头(utf-8)的解决方式——保存格式为ANSI即可
- OpenCms中FCKEditor保存内容时invalid XML character (Unicode: 0x0)错误解决办法
- OpenCms中FCKEditor保存内容时invalid XML character (Unicode: 0x0)错误解决办法
- CHM格式 打开后不显示内容的解决办法
- 将网页内容以PDF格式保存
- SpringMVC解决返回JSON格式,IE显示保存文件
- CHM格式文件不显示内容的解决
- PHP文件缓存内容保存格式实例分析
- 解决input的回车enter和失焦blur冲突问题:实现回车保存,blur还原编辑内容功能
- 解决 SaveDialog文件名中带有时间格式无法保存的问题
- Python MOOC简单获取网页内容并以html格式保存在本地
- PHP文件缓存内容保存格式
- 将数组内容保存为csv格式
- dedecms织梦无法保存栏目内容的解决方法
- 解决IDEA XML文件编辑后保存格式错误导致MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 3无效
- 如何用c语言编写这样一函数:当按下屏幕a键时,把当前屏幕某一指定区域的内容保存到e盘下,格式为.bmp或.jpg。
- 用VBS将一篇txt后缀的内容保存为html格式
- 解决JSP保存到数据库丢失格式的方法