2014-02-19 54 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); 
相關問題