Почему этот код не хранит несколько входов - в настоящее время хранится только один, который перезаписывается при новом вводе - PullRequest
1 голос
/ 23 апреля 2020

Эй, ребята, любая помощь будет оценена.

Я создал некоторый код, который позволяет мне принимать пользовательский ввод с терминала и сохраняет его в текстовый файл в том же каталоге. Проблема в том, что каждый раз сохраняется только 1 имя и фамилия. когда я открываю новый клиент и набираю другое имя, он просто перезаписывает исходное. не уверен, в чем причина, поскольку у меня было впечатление, что out.newline решит эту проблему.

public void userinput()
{
    try
        {
            out = new BufferedWriter(new FileWriter("TESTING.txt"/*,true*/));



           //
            @SuppressWarnings("resource")
            Scanner input = new Scanner(System.in);

           //ask for first name
            System.out.println("Please enter your first name: ");
            Name = input.nextLine();

            //ask for surname
            System.out.println("Please enter your last name: ");
            Surname = input.nextLine();

            //write names into txt file
            out.write(Name + " - " + Surname);


            //print welcome message with names into console for user
            System.out.println("Welcome " + Name + Surname);
            out.newLine(); 

            out.close();  
        }
        catch(IOException e)
            {
            System.out.println("There was a problem:" + e);
            }
}

}

спасибо за помощь!

1 Ответ

1 голос
/ 23 апреля 2020

Это происходит просто потому, что вы не открывали FileWriter в режиме добавления, поэтому он не перезаписывает файл каждый раз. Для этого вам нужно вызвать конструктор как new FileWriter("TESTING.txt", true). Просто раскомментируйте истину, и это сработает. Я предполагаю, что в какой-то момент вы случайно это закомментировали.

...