我需要在Java .So中读取一些RTF文件,我得到了一个代码,它最初工作得很好。但我的问题是:是否可以在读取这些文件时设置格式(例如: UTF-8、UTF-16等)?
我在这里发布了读取RTF文件的代码:
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;
}发布于 2014-02-19 17:43:37
我相信FileReader使用的是默认编码。幸运的是,read()方法也被重载以处理流-对于它们,您可以设置您想要使用的编码:
rtfKit.read(new FileInputStream(fileDir), StandardCharsets.UTF_8), ...)发布于 2017-12-07 18:02:33
它适用于我的以下几行代码:
FileInputStream is = new FileInputStream(rtfFilePath);
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader buffReader = new BufferedReader(isr);
rtfKit.read(buffReader, p.getDocument(), 0);https://stackoverflow.com/questions/21872808
复制相似问题