2011-08-02 23 views
0

我寫了一個FileMerge類,其中我使用一個rtf並用SQL數據替換某些標記。 一切都很好,但我用一行或多行代替一個標籤的一部分,它取代了文件,但\ n或\ r \ n在單詞中打開時不會創建新行。將字符串寫入到java中的rtf並不保持結構

代碼:

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」)失敗。

當我在記事本中打開文件時,我可以看到所有的代碼都是富文本格式,除了這部分顯示在正確的結構中。 我想我需要一種方式來編寫這個字符串在豐富的文本格式,所以它會顯示良好的單詞。

謝謝你的幫助, 伊丹。

+0

發佈一個您期望的RTF樣本與whatyou獲得的樣本。 – g051051

回答

0

在RTF中,換行符不在文本中的新行中指示 - 相反,您必須使用正確的控制序列來執行此操作。從略過the specification,\line看起來像是一個強硬的換行符,並且\par像段落中斷。

+0

感謝您的幫助,但是知道當我在控制檯中使用「\\ line」時它顯示\ line,但是當寫入文件時它只寫入沒有反斜槓的行 – Idan

+0

查看生成的文件(用純文本打開文本編輯器,沒有理解RFT)。你在那裏看到'\ line'嗎? (你可能必須在Java字符串中寫入''\\ line''。) –

相關問題