首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以持久地存储样式的文本?

是否可以持久地存储样式的文本?
EN

Stack Overflow用户
提问于 2015-03-22 15:31:17
回答 1查看 127关注 0票数 0

因此,我试图使用DefaultStyledDocument序列化一些XMLEncoder对象。它们的编码很好,但是当我查看数据时,它并没有编码任何实际的数据,它只是给出了类文件。我在网上看过,发现很多人在这方面有困难,但没有任何有用的解决方案。我看到的最好的答案是:"DefaultStyledDocument不是一个合适的bean,所以它不能工作。“

那么,我是否可以序列化DefaultStyledDocuments,而不必处理不同版本之间的问题?二进制和文本都是可以接受的。

下面是我想要做的一些示例代码:

代码语言:javascript
复制
DefaultStyledDocument content = new DefaultStyledDocument();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
XMLEncoder encoder = new XMLEncoder(stream);
encoder.writeObject(content);
encoder.close();
stream.toString(); //This is the result of the encoding, which should be able to be decoded to result in the original DefaultStyledDocument

我并不在乎我是否使用XMLEncoder或其他方法,它只是需要工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-28 05:41:19

没有必要使用XMLEncoder对文档进行编码。EditorKits是Swing Text的一部分,它为您完成了这项工作。基级类EditorKit有一个read()write()方法。然后,各种子EditorKits对这些方法进行扩展,以允许读取和写入文档。大多数文档都有自己的EditorKits,它允许程序员读取或写入文档。

然而,StyledEditorKit (DefaultStyledDocument的“自己的”EditorKit)不允许读写。您需要使用RTFEditorKit,它确实支持读写。然而,Swing的内置RTFEditorKit并不能很好地工作。因此,有人设计了一个免费的“高级”编辑器工具包提供的这里。为了用DefaultStyledDocument编写AdvancedRTFEditorKit,使用以下代码(变量content是DefaultStyledDocument)。

代码语言:javascript
复制
AdvancedRTFEditorKit editor = new AdvancedRTFEditorKit();
Writer writer = new StringWriter();
editor.write(writer, content, 0, content.getLength());
writer.close();
String RTFText = writer.toString();

使用RTFEditorKit的RTFDocuments方法读取read()也可以使用类似的过程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29196207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档