java RTF 转 TXT 出错问题。

博主第一次写这种关于技术汇总的问题,写不好见谅哈。最近老大给了一个任务,转换文档,DOC,DOCX,PDF,RTF转TXT,其实我以上都弄完了。也测试通过,我们都要上线一个版本了,擦。。。上线过后出险了非常诡异的一个问题。RTF转换TXT出错如下:

 java.io.IOException: Too many close-groups in RTF text

有一些RTF文档老是报这个错误。不知道是为什么,开始也比较疑惑所有了网络很多帖子和谷歌。找了两三天没找到,遗憾,无耐只能博主自己搞一下,当然中间还有一些乱码问题滤过了,如果有问题的同学可以跟我联系大家互相交流一下,再次不过多表述。

我的原始代码是这么写的:

java RTF 转 TXT 出错问题。

只要一运行到

rTFEditorKit.read(inputStream, styledDoc, 0);  这句话就报错,很无奈。最重要的是,不是所有RTF文档有问题,只有个别的,但是无奈个别文档也得排除啊。

后来经过代码改良,不断尝试。。。终于....从一个哥们帖子里面看到了精华,RTF---转 HTML --转 TXT,说好精华呢,居然是曲线救国。。。发现确实可用,但是太绕了。经过我自己尝试和看底层代码的区别。改良后的代码:

java RTF 转 TXT 出错问题。



java RTF 转 TXT 出错问题。



猜到大家也发现了重点:

rtfeditorkit.read(bytearrayinputstream, document, 0);

这里传入了一个bytearrayinputstream, 我之前是传的inputstream ,感觉还是有区别的。

但是呢,是不是所有的问题都是这个导致的呢。有待考察和测试,至此问题解决,不在报IO异常。

 java.io.IOException: Too many close-groups in RTF text

  如果有大神解决过这个问题,或者知道其中的原理,望告知小弟,或者一起讨论。我只是一个搬砖的码农,希望跟大家一起提升。