在String中将字符串写入rtf并不保留结构

时间:2011-08-02 13:39:26

标签: java string rtf file-writing

我写了一个FileMerge类,我拿了一个rtf并用SQL数据替换某些标签。 一切都还可以,但是我用一条或多条线替换一个标签的一部分,它取代了文件但是\ n或\ r \ n在用单词打开时不会创建新行。

代码:

String otherFamilyString="\n";


    for(int i=0;i<OtherFamily.size();i=i+TotalArguments)
    {
        otherFamilyString +=  "\n"+OtherFamily.get(i+FamilyMbrId) +"|\t"+ OtherFamily.get(i+FamilyMbrName) +"|\t"+ OtherFamily.get(i+FamilyStatus)+"|\t"
        + OtherFamily.get(i+FamilyCoveragetype) +"|  "+ OtherFamily.get(i+FamilyRelationship) +"|" ;
        System.out.print(i+" "+otherFamilyString);


    }
    newtext = newtext.replaceAll("OTHERFAMILY",otherFamilyString);



    FileWriter writer = new FileWriter(outPutDir+memberInfo.get(GroupId).replace(" ", "")+newName.replace("*", "")); 
    writer.write(newtext);//write the new file 
    writer.close();

我也尝试过System.getProperty(“line.separator”)失败。

当我在记事本中打开文件时,我可以看到所有代码都是富文本,除了这部分显示在正确的结构中。 我想我需要一种以富文本格式编写这个字符串的方法,这样它就会显示出来。

谢谢你的帮助, IDAN。

2 个答案:

答案 0 :(得分:1)

以下是与RTF格式有关的一些文档:http://search.cpan.org/~sburke/RTF-Writer/lib/RTF/Cookbook.pod#RTF_Document_Structure

它表示使用\line命令指定换行符。

答案 1 :(得分:0)

在RTF中,文本中的新行不表示换行符 - 而是必须使用正确的控制序列来执行此操作。从略过the specification开始,\line看起来像是一个强硬的突破,而\par就像一个段落中断。