0

こんにちは、Javaコードを使用してテキストファイルにデータを書き込んでいますが、コードを再度実行すると、古いデータに再び追加され、新しいデータで古いバージョンを上書きしたいと思います。誰でも助けることができます..

BufferedWriter  out1 = new BufferedWriter(new FileWriter("inValues.txt" , true));
  for(String key: inout.keySet())
                {
                    String val = inout.get(key);
                    out1.write(key+" , "+val+"\n");
                }
                out1.close();
4

3 に答える 3

5

コードは役に立ちますが、デフォルトは上書きであるため、データを追加するように指示している可能性があります。次のようなものを見つけます:

file = new FileWriter("outfile.txt", true); 

そしてそれをに変更します

file = new FileWriter("outfile.txt", false); 

あるいは単に

file = new FileWriter("outfile.txt");

デフォルトは上書きであるため、どちらでも機能するはずです。

編集に基づいて、FileWriter で true を false に変更するか、削除してください。2 番目のパラメーターは必須ではありません。true の場合、ファイルにデータを追加することを指定します。

不完全な書き込みの問題について言及しました... BufferedWriter() は必要ありません。ファイルが小さい場合は、FileWriter() を単独で使用して、そのような問題を回避できます。BufferedWriter() を使用する場合は、.close() する前に .flush() する必要があります。

BufferedWriter out1 = new BufferedWriter(new FileWriter("inValues.txt"));
for(String key: inout.keySet())
   {
       String val = inout.get(key);
       out1.write(key+" , "+val+"\n");
   }
   out1.flush();
   out1.close();
于 2013-07-12T07:04:23.153 に答える
1

追加パラメータをに設定false

new FileWriter(yourFileLocation,false);
于 2013-07-12T07:02:25.467 に答える
0

単純な File および FileWriter クラスを使用できます。FileWrite クラスのコンストラクターは、ファイルを作成するために 2 つの異なる種類を提供します。ファイルのオブジェクトのみを取るもの。もう 1 つは 2 つのパラメータで、1 つはファイル オブジェクトで、もう 1 つはブール値の true/false で、作成するファイルが内容を追加するか上書きするかを示します。

次のコードはコンテンツの上書きを行います。

public class WriteFile {
    public static void main(String[] args) throws IOException {
        File file= new File("new.txt");
        FileWriter fw=new FileWriter(file,true);
        try {

            fw.write("This is first line");
            fw.write("This is second line");
            fw.write("This is third line");
            fw.write("This is fourth line");
            fw.write("This is fifth line");

            fw.write("hello");

        } catch (Exception e) {

        } finally {
            fw.flush();
            fw.close();
        }
    }
}

FileWriter と同じ 2 種類のコンストラクターも提供するため、PrintWriter クラスでも同様に機能します。ただし、いつでも Java Doc API を参照できます。

于 2013-07-12T08:11:33.810 に答える