首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在java中读取RTF文件时如何设置格式?

在java中读取RTF文件时如何设置格式?
EN

Stack Overflow用户
提问于 2014-02-19 14:31:31
回答 2查看 1.1K关注 0票数 1

我需要在Java .So中读取一些RTF文件,我得到了一个代码,它最初工作得很好。但我的问题是:是否可以在读取这些文件时设置格式(例如: UTF-8、UTF-16等)?

我在这里发布了读取RTF文件的代码:

代码语言:javascript
复制
public static String rtf_read(String fileName) throws Exception, BadLocationException
{
JEditorPane p = new JEditorPane();
p.setContentType("text/rtf");
EditorKit rtfKit = p.getEditorKitForContentType("text/rtf");
rtfKit.read(new FileReader(fileName), p.getDocument(), 1);
rtfKit = null;
// convert to text
EditorKit txtKit = p.getEditorKitForContentType("text/plain");
Writer writer = new StringWriter();
txtKit.write(writer, p.getDocument(), 0, p.getDocument().getLength());
String documentText = writer.toString();
return documentText;
}
EN

回答 2

Stack Overflow用户

发布于 2014-02-19 17:43:37

我相信FileReader使用的是默认编码。幸运的是,read()方法也被重载以处理流-对于它们,您可以设置您想要使用的编码:

代码语言:javascript
复制
rtfKit.read(new FileInputStream(fileDir), StandardCharsets.UTF_8), ...)
票数 0
EN

Stack Overflow用户

发布于 2017-12-07 18:02:33

它适用于我的以下几行代码:

代码语言:javascript
复制
FileInputStream is = new FileInputStream(rtfFilePath);
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader buffReader = new BufferedReader(isr);
rtfKit.read(buffReader, p.getDocument(), 0);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21872808

复制
相关文章

相似问题

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