代码整理自网络.
- 缺点: 这样转换会丢失RTF文件中的样式(比如字体大小,颜色,加粗等).
- 优点: 没有引用任何外部依赖,仅需JDK即可运行.
DefaultStyledDocument styledDoc = new DefaultStyledDocument(); // D:\\rtf.txt 是RTF文件,用记事本打开后另存的txt文件. try(InputStream is = new ByteArrayInputStream(Files.readAllBytes(Paths.get("D:\\rtf.txt")))) { new RTFEditorKit().read(is, styledDoc, 0); // 可能会存在编码问题,只能多试几个编码,直到找到正确的那个. String bodyText = new String(styledDoc.getText(0, styledDoc.getLength()).getBytes("UTF-8")); // bodyText = new String(styledDoc.getText(0, styledDoc.getLength()).getBytes("GB2312")); // bodyText = new String(styledDoc.getText(0, styledDoc.getLength()).getBytes("GBK")); System.out.println(bodyText); }catch(Exception ex){ System.out.println(ex.getMessage()); }
《Java: 转换RTF文件为txt文本》上有2条评论