0

私はJavaでファイルを扱ってきました。また、ファイルの読み取りと書き込みの基本を知っています。以下は私が書いてみたコードです

    void qlm(String option,String initiate,String ii,String file_path,String source,List destination){ //,String paths,String src){
    String [] Ln = {"B","C","D"};
    int count =1, counter=1,seq=1;
    try{
        System.out.println("Here: " +file_path);
        PrintWriter pwr = new PrintWriter(new FileWriter(getHandleB()),true);
        for(int i=0;i<Ln.length;i++){
            pwr.println("Sequence_Number" + "|" + "QLM_Operation" + "|" + "II_D" + "|" + "Val_D" + "|" + "List" + "|" + "Type" + "|" + "Status" + "|" + "Source" + "|" + "Destination");
            pwr.println(count + "|" + option + "|" + "DataK" + "|" + "Value" + "|" + Ln + "|" + "Null" + "|" + "Pending" + "|" + source + "|" + Ln[i]);
            count++;
         }
        pwr.close();

getHandleB() はファイルのパスです。これはメソッドqlm(parameters)で実行されます

ここで、 handle(parameters)という名前の別のメソッドから同じファイル (パス: getHandleB()) に書き込みたい

この関数の出力は、前のメソッドの内容を削除せずに同じファイルに書き込む必要があります。ファイルに書き込もうとすると、以前の内容が削除され、新しい内容が書き込まれます。どうすればこれを回避できますか。すべてのメソッドのすべての内容を記述したいと考えています。すべての助けをありがとう。

4

2 に答える 2

2

ファイルに追加していません。2 番目のパラメーターとして boolean/true を持つ、追加を許可する FileWriter コンストラクターを使用します。

PrintWriter pwr = new PrintWriter(new FileWriter(getHandleB(), true),true);

編集
上記のコードでコンストラクター呼び出しを分離すると、何が起こっているのかを理解するのに役立ちます。

FileWriter fileWriter = new FileWriter(getHandleB(), true);
PrintWriter pwr = new PrintWriter(fileWriter, true);

はい、ここでは 2 つのブール値パラメーターが使用されていますが、それらは異なるコンストラクターで使用されています。

于 2013-06-23T15:54:39.993 に答える
1

2 番目の引数として適切なFileWriterコンストラクターを使用する必要があります。true

デフォルトでは、aFileWriterは開いたファイルを切り捨てます。

于 2013-06-23T15:55:09.433 に答える