Sam się uczę Javy, dużych projektów za sobą nie mam ale parę zastrzeżeń mam:
-Długość funkcji, imo możnaby było podzielić je jeszcze bardziej.
-W każdej funkcji masz: File file = new File(fileName);. Zastanowilbym się, czy nie lepiej zamiast pola String fileName, dac już po prostu pole typu File.
-Nazewnictwo zmiennych: widziałem parę razy zmienne o nazwie hasło, zmień je na angielskie. Tak samo zmienna o nazwie "a" czy "b" niewiele mówi.
-Jak porownujesz zmienną String z jakimś napisem, to lepiej zamiast zmienna.equals("test") dac "test".equals(zmienna) - zadziała również wtedy, gdy zmienna = null. W twoim przypadku, rzuci wyjątek NullPointerException.
-Nazwa funkcji: information() to niezbyt dobra nazwa, lepsza byłaby printInformation(). Tak samo account().
-Nazwa klasy: Config. Dużo też nie mówi, a raczej wprowadza w błąd. Lepsza byłaby już np CreditCard, albo samo Card.
-W funkcji main, powinieneś tylko uruchomić odpowiednią metodę/utworzyć odpowiedni obiekt odpowiedzialny za całą logikę twojej aplikacji. Pozbylbym się tego co masz w mainie i zrobił z tego osobną klasę.
-Mógłbyś wyodrębnić kod sprawdzający hasło, czy kod odpowiedzialny za wpisanie hasła, bo z tego co widziałem w paru miejscach tam się to powtarza.
Na razie tyle.