Загрузка данных


import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 1. Задаем два вопроса пользователю
        System.out.print("Сколько паролей (пользователей) нужно создать? ");
        int count = scanner.nextInt();

        System.out.print("Какой длины будут пароли? ");
        int length = scanner.nextInt();

        // Файл, куда будем записывать результат (создастся в папке с проектом)
        File outputFile = new File("passwords.txt");

        try {
            PrintWriter writer = new PrintWriter(outputFile);

            writer.println("=== СПИСОК ПОЛЬЗОВАТЕЛЕЙ И ПАРОЛЕЙ ===");

            // 2. В цикле вызываем метод генерации пароля для каждого пользователя
            for (int i = 1; i <= count; i++) {
                String password = generatePassword(length);
                String line = "Пользователь_" + i + " | Пароль: " + password;
                
                // Записываем в файл и дублируем в консоль для наглядности
                writer.println(line);
                System.out.println(line);
            }

            // 3. Записываем итоговую статистику в конец файла
            writer.println("--------------------------------------");
            writer.println("Итого создано пользователей: " + count);
            writer.println("Итого сгенерировано паролей: " + count);
            writer.println("Длина каждого пароля:        " + length + " симв.");
            writer.println("======================================");

            writer.close(); // Обязательно закрываем файл, чтобы данные сохранились
            System.out.println("\nГотово! Все данные успешно записаны в файл passwords.txt");

        } catch (FileNotFoundException e) {
            System.out.println("Ошибка при создании файла!");
        }
        
        scanner.close();
    }

    // Отдельный метод для генерации одного пароля заданной длины
    public static String generatePassword(int length) {
        // Все символы, из которых может состоять пароль
        String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%&*";
        Random random = new Random();
        String password = "";

        for (int i = 0; i < length; i++) {
            // Выбираем случайный номер символа от 0 до длины строки chars
            int randomIndex = random.nextInt(chars.length());
            // Достаем символ под этим номером и прибавляем к паролю
            password += chars.charAt(randomIndex);
        }

        return password; // Возвращаем готовый пароль обратно в main
    }
}