2011-08-10 19 views
1

私はJavaのFileWriterを使ってコンテンツを既存のファイルに書き出していますが、コンテンツはファイルの最後に追加されています。特定の場所にコンテンツを追加したい誰かがこれを行う方法で私を助けることができますか?私は現在、このような何かやっているFileWriterを使用してファイル内の特定の場所にコンテンツを書き込む方法は?

:ファイルポインタによって導かれた特定の場所に書き込むには

FileWriter fileWriter = new FileWriter(fileW,true); 
fileWriter.append(metaData.toString()); 
fileWriter.flush(); 
fileWriter.close(); 

答えて

2

を、あなたはRandomAccessFileクラスを使用する必要があります。しかし、ファイルポインタをめちゃくちゃにするのは少し毛深いので、ランダムアクセスを使って "テキスト"を書いてみたい理由は何ですか?

もう少し詳しくお聞かせください。

+0

を見えるように、新しいファイルへ

  • は、必要に応じて、古いファイルの名前を変更/削除し、新しいファイルの名前を変更しますhtmlファイルのheadタグ内にメタデータを追加します。 FileWriterを使用すると、ファイルの最後にメタデータを追加できます。しかし、必要は、私はヘッドタグ内の場所のメタデータをしたいです。 – ramesh

  • +0

    その場合、最も簡単な解決策は、元の生成されたHTMLコンテンツとともに、変更されたメタデータを「含む」新しいファイルを書き込むことです。あなたがしていることは、単にソースHTMLからの行を "読み"続け、それらを新しいデスティネーションHTMLに書き込むことです。 HEADタグに対応する文字列が見つかるとすぐに、その文字列にメタデータを追加し、新しい文字列を作成してターゲットのHTMLファイルに書き込みます。しかし、再び、私はあなたが最初にTikaの人々にアプローチし、生成されたファイルに直接メタデータを追加する可能性があるかどうかを確認する必要があると感じています。 –

    +0

    Tikaはメタデータを含むxhtmlファイルを生成しています。しかし、問題はrtf文書がTikaを通じてxhtmlファイルに変換され、太字、イタリック体などのHTMLタグが生成されたxhtmlファイルに存在しなかったことです。すべてのhtmlタグが表示されたhtml形式のrtf変換文書が必要です。だから、私はHtmlEditorKitを使用してhtmlにrtfドキュメントを変換し、生成されたhtmlファイルにメタデータを追加しようとしています。 Hope Tikaには、生成されたファイルにメタデータを別々に追加する機能がありません – ramesh

    3

    あなたの目的はのデータをファイルの中央に挿入することですか?もしそうなら、ほとんどのファイルシステムは基本的にこれをサポートしていません。以下を行う必要があります。

    • 新しいファイルを作成します
    • コピーし、古いファイルの最初の部分に新しいファイルへ
    • 新しいデータを書き込み、新しいファイルへ
    • コピーし、古いファイルの残りの部分を今、私は今、私が欲しい、アパッチティカを使用してHTMLファイルを生成しています古いファイルと同じ場所に
    +0

    'RandomAccessFile'を使用する場合、必要なファイルデータを格納するのに十分な大きさのバッファを割り当てることができれば、先に "シフト"。しかし、はい、私は同意します、自動 "シフト"はサポートされていません。 –

    +1

    @Sanjay:その場合、あなたは本当に*データを挿入するわけではありません - ファイルの一部を上書きする*ので、最初の質問の後の残りの回答は適用されません。 –

    関連する問題