2014-02-19 58 views
1

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

在这里,我已经发布读取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; 
} 
+0

该代码页是RTF文件的一部分 – StanislavL

回答

0

我相信FileReader使用默认的编码。幸运的是,read()方法重载的处理流,以及 - 对他们来说,你可以设置你想使用的编码:

rtfKit.read(new FileInputStream(fileDir), StandardCharsets.UTF_8), ...) 
0

它为我用下面的代码行:

FileInputStream is = new FileInputStream(rtfFilePath); 
InputStreamReader isr = new InputStreamReader(is, "UTF-8"); 
BufferedReader buffReader = new BufferedReader(isr); 
rtfKit.read(buffReader, p.getDocument(), 0); 
相关问题