java - 每次添加到文件时如何阻止文件被覆盖?

标签 java file filewriter

我正在尝试创建一个要添加到文件中的玩家列表,以便我可以存储它们并在需要时调用它们。

我已成功写入该文件,但每次重新写入该文件时,最后一个文件条目都会被覆盖。 有谁知道如何将每个条目保存到文件中而不每次都被覆盖?

任何帮助将不胜感激

提前致谢!!!!!!


package p;

import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Runner {

    public static final Scanner input = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        FileWriter writer = new FileWriter("output.txt");
        PlayerData player = null;
        List<PlayerData> players = new ArrayList<>();

        System.out.println("How many players do you want to register? : ");
        int num = input.nextInt();

        while (true) {

            System.out.println("Plz enter Name : ");
            String name = input.next();
            writer.write("Name: " + name + System.lineSeparator());

            System.out.println("Plz enter age : ");
            String age = input.next();
            writer.write("Age: " + age + System.lineSeparator());

            System.out.println("Plz enter Player_id : ");
            String player_id = input.next();
            writer.write("Player_id: " + player_id + System.lineSeparator());

            System.out.println("Plz enter agent_id : ");
            String agent_id = input.next();
            writer.write("Agent_id:" + agent_id + System.lineSeparator());

            System.out.println("Plz enter status : ");
            String status = input.next();
            writer.write("Status: " + status + System.lineSeparator());

            System.out.println("Plz enter position : ");
            String position = input.next();
            writer.write("Position: " + position + System.lineSeparator());

            System.out.println("Plz enter valuation : ");
            Double valuation = input.nextDouble();
            writer.write("Value: " + valuation + System.lineSeparator());

            System.out.println("\n");
            player = new PlayerData(name, age, player_id, agent_id, valuation, status, position);
            players.add(player);

            System.out.println("Information Entered: \n" + player + "\n" + "Name : " + name + "\n" + "Age: " + age
                    + "Player id: " + player_id + "\n" + "Agent id: " + agent_id + "\n" + "Player Value: " + valuation
                    + "\n" + "Player Status:" + status + "\n" + "Player position:" + position + "\n");

            writer.close();
            if (players.size() == num)

                break;
        }

        System.out.println(players);

    }

}


最佳答案

FileWriter writer = new FileWriter("output.txt", true);

关于java - 每次添加到文件时如何阻止文件被覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59633059/

相关文章:

Java file.exists() 找不到 XML 文件

java - 在java中创建文件

java - 在Java中覆盖现有文件

java - 如何创建接受特定字符的正则表达式?

java - 是否可以在堆栈上使用提供的 Java 集合方法,例如 max、min、sort 等...?

java - 无法使用 ClassPathXmlApplicationContext 加载我的配置文件,

java - 如何在 Java 中创建新文件之前告诉 FileWriter 关闭所有文件

java - 在 ElasticSearch 中使用 Java API 搜索具有 Id 的字段时找不到文档

java - 使用 BufferedReader 读取多个文件(使用 String[] args)

java - "cscript//NoLogo"代表什么?