Java读RTF乱码问题

    这几天想用Java读富文档。用javax.swing.text和javax.swing.text.rtf包中的类读RTF文档时出现中文乱码问题(出现?号)。
    幸好找到 ANGEL SKY 的博客。用ISO8859_1编码转换。

代码片断:
String bodyText  =   null ;
        DefaultStyledDocument styledDoc 
=   new  DefaultStyledDocument();     // javax.swing.text.Document的一个实例
         try  {
            InputStream is 
=   new  FileInputStream( new  File( " data/java.swing.text读RTF文档测试.rtf " ));
            
new  RTFEditorKit().read(is, styledDoc,  0 );
            bodyText 
=   new  String(styledDoc.getText( 0 , styledDoc.getLength()).getBytes( " ISO8859_1 " ));     // 提取文本
        }  catch  (IOException e) {
            
throw   new  DocumentHandlerException( " 不能从RTF中摘录文本! " , e);
        } 
catch  (BadLocationException e) {
            
throw   new  DocumentHandlerException( " 不能从RTF中摘录文本! " , e);
        }
        System.out.println(bodyText);

你可能感兴趣的:(java,swing)