Java JTextPane RTF 保存
我有以下代码尝试将 JTextPane 的内容保存为 RTF。虽然下面的代码创建了一个文件,但它是空的!
关于我做错了什么有什么建议吗? (像往常一样,不要忘记我是一个初学者!)
if (option == JFileChooser.APPROVE_OPTION) {
////////////////////////////////////////////////////////////////////////
//System.out.println(chooser.getSelectedFile().getName());
//System.out.println(chooser.getSelectedFile().getAbsoluteFile());
///////////////////////////////////////////////////////////////////////////
StyledDocument doc = (StyledDocument)textPaneHistory.getDocument();
RTFEditorKit kit = new RTFEditorKit();
BufferedOutputStream out;
try {
out = new BufferedOutputStream(new FileOutputStream(chooser.getSelectedFile().getName()));
kit.write(out, doc, doc.getStartPosition().getOffset(), doc.getLength());
} catch (FileNotFoundException e) {
} catch (IOException e){
} catch (BadLocationException e){
}
}
编辑: HTMLEditorKit 如果我使用 HTMLEditorKit 它可以工作,这就是我真正想要的。解决了!
i have the following code trying to save the contents of a JTextPane as RTF. although a file is created in the following code but it is empty!
any tips regarding what am i doing wrong? (as usual dont forget im a beginner!)
if (option == JFileChooser.APPROVE_OPTION) {
////////////////////////////////////////////////////////////////////////
//System.out.println(chooser.getSelectedFile().getName());
//System.out.println(chooser.getSelectedFile().getAbsoluteFile());
///////////////////////////////////////////////////////////////////////////
StyledDocument doc = (StyledDocument)textPaneHistory.getDocument();
RTFEditorKit kit = new RTFEditorKit();
BufferedOutputStream out;
try {
out = new BufferedOutputStream(new FileOutputStream(chooser.getSelectedFile().getName()));
kit.write(out, doc, doc.getStartPosition().getOffset(), doc.getLength());
} catch (FileNotFoundException e) {
} catch (IOException e){
} catch (BadLocationException e){
}
}
EDIT: HTMLEditorKit if i use HTMLEditorKit it works and thats what i really wanted. SOLVED!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是解决方案。如果使用 HTMLEditorKit 它就可以工作。
here is the solution. it works if HTMLEditorKit is used.
这是 RTF 而不是 HTML 的解决方案。
由于 RTF 没有标准化,我需要一些额外的标签,如 \sb 和 \sa 来强制我的写字板正确显示文件。
Here is a solution for RTF and not HTML.
As RTF is not standardized, I needed some additional tags like \sb and \sa to force my Wordpad to display the file properly.
当我遇到同样的问题时,我就是这样做的。
This is how I did when I faced the same problem.
我在您的代码中看到的唯一问题是您没有关闭输出流(当内容实际写入磁盘时)。
尝试
out.close()
。它应该可以解决你的问题。
The only problem I've seen in your code is that you're not closing the output stream (when content is actually written to disk).
Try
out.close()
.It should solve your problem.