Jeżeli robisz to na plikach, to lepiej użyć BufferedWritera tak jak to jest tutaj pokazane:
https://howtodoinjava.com/java/io/java-append-to-file/
Tutaj dokumentacja FileWritera: https://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html .
Z drugiej strony, zastanowiłbym się czy nie lepiej zrobić sobie jakąś strukturę (klasę bez metod) przechowującą np Login i hasło, implementującą Serializable i ObjectOutputStreamem go zapisać do pliku (potem pobierać cały obiekt już) tak jak tutaj:
https://examples.javacodegeeks.com/core-java/io/fileoutputstream/how-to-write-an-object-to-file-in-java/
Potem pobierasz te obiekty i sprawdzasz czy dane logowania się zgadzają. Korzystając z bazy danych, musiałbyś sterownik sobie jdbc podpiąć do projektu i skonfigurować połączenie z bazą danych. I potem albo natywne sqle pisać, albo jakiegoś ORMa użyć (osobiście polecałbym tą drugą opcję, np Hibernate).
Jeżeli to ma być część backendu, to najprościej Spring Boota podpiąć i pozwolić mu się komunikować z bazą danych za pomocą Repozytoriów.
Nie wysyłałem jeszcze emaili za pomocą javy, ale tutaj jest pokazane jak to można zrobić w Springu:
https://www.baeldung.com/spring-email