2011-08-02 6 views
0

私はrtfをとり、特定のタグをSQLデータで置き換えるFileMergeクラスを作成しました。 すべては問題ありませんが、1つのタグを1つ以上の行に置き換える部分ですが、ファイルを置き換えますが、\ nまたは\ r \ nはwordで開いたときに新しい行を作成しません。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(); 

Iはまた失敗はSystem.getProperty( "line.separator")を試みました。

メモ帳でファイルを開くと、すべてのコードがリッチテキストで表示されますが、この部分は正しい構造で表示されます。 私はリッチテキスト形式でこの文字列を書く方法が必要だと思うので、それは良い言葉で表示されます。

助けてくれてありがとう、 Idan。ここで

+0

期待するRTFのサンプルを投稿します。 – g051051

答えて

0

RTFでは、改行はテキストの新しい行では表示されません。代わりに、正しい制御シーケンスを使用してください。 the specificationをスキミングすると、\lineは改行のように見え、\parは段落のようです。

+0

助けていただきありがとうございますが、コンソールで\\ lineを使用すると\ lineと表示されますが、ファイルに書き込むときにはバックスラッシュなしで行が書かれます – Idan

+0

生成されたファイルを見てみましょうテキストエディタ、RFTを理解するものはありません)。そこに '\ line'がありますか? (おそらく '' \\ line "'をJava文字列に書く必要があります)。 –

1

は、RTF形式に関連するいくつかのドキュメントです:http://search.cpan.org/~sburke/RTF-Writer/lib/RTF/Cookbook.pod#RTF_Document_Structure

それは\lineコマンドを使用して改行を指定すると言います。

+0

ありがとう、助けてくれてありがとう、私はコンソールで "\\ line"を使っていることを知っていますが、\ lineを表示していますが、ファイルに書き込むときはバックスラッシュなしで行を書きます。 – Idan

関連する問題