Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 80

Exception and ReadFile

15.01.2022, 16:37. Показов 3259. Ответов 31
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте! Помогите с заданием, по тому что почти нечего не понятно пока, кроме очевидных вещей....

Реализовать data mapping из текстового файла на java класс.
(файл есть(.csv) с именами, id, role и так далее...)

1|Oleksiy Ivanov|oivanov@gmail.com|1111|QA
2|Ivan Ivanov|iivanov@mail.com|1234|Developer

1) Entity - User, с полями id, username, email, password, role (Роль должна быть в виде enum)
2) interface DataMapper :
User findUserById(int id);
User findUserByUsername(String userName);
User findUserByEmail(String email);
List<User> findUsersByIds(List<Integer> ids)
3) FileDataMapper класс, который имплементирует интерфейс DataMapper
4) UserNotFoundException

Также реализовать свой Exception и кидать его, если не было найдено ничего по поиску.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2022, 16:37
Ответы с готовыми решениями:

First chance exception at $646E6970. Exception class $C0000005 with message access violation at 0x646e6970
Перешёл с XE6 на Delphi 10.3 после чего проект перестал запускаться, выдавая ошибку - First chance exception at $646E6970. Exception...

Unhandled exception at at 0x75E717D2 in ConsoleApplication24.exe: Microsoft C++ exception: std::out_of_range at memory l
Здравствуйте, помогите пожалуйста, при проходе через последний цикл выдаёт вот такую ошибку: Unhandled exception at at 0x75E717D2 in...

Unhandled exception at 0x7c812a5b : Microsoft C++ exception: std::bad_alloc at memory location 0x0012f350
что то я запутался совсем. подскажите где глюк? Считываю из XML данные: char* ValueVariable(длинная символьная строка) пытаюсь ее...

31
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 80
20.01.2022, 18:23  [ТС]
Студворк — интернет-сервис помощи студентам
Очень благодарен, Спасибо большое за помощь, все работает!!!
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 80
22.01.2022, 00:02  [ТС]
Последний вопрос, есть метод и есть файл с полями (10 юзеров), как добавить в метод исключение свое, чтобы после того
как ввести, допустим (11), выдавало исключение
по тому что по заданию:

Также реализовать свой Exception и кидать его, если не было найдено ничего по поиску

Класс свой Exception:

Java
1
2
3
4
5
6
public class UserNotFoundException extends Exception {
 
    public UserNotFoundException(String message) {
        super(message);
    }
}
и метод:

Java
1
2
3
4
5
6
7
8
 @Override
    public List<User> findUsersByIds(List<Integer> ids) {
        List<User> users = new ArrayList<>();
        for (Integer byId : ids) {
            users.add(findUserById(byId));
        }
        return users;
    }
0
33 / 25 / 11
Регистрация: 11.10.2019
Сообщений: 162
22.01.2022, 00:30
Petr Kracovis, Создай кастомное исключение, самый простой его вариант выглядит так:
Java
1
2
public class UserNotFoundException extends RuntimeException {
}
После добавь проверку на количество найденных элементов и если оно будет равно нулю - бросай исключение:
Java
1
2
3
4
5
6
7
8
9
10
@Override
    public List<User> findUsersByIds(List<Integer> ids) {
        List<User> foundUsers = ids.stream()
                .filter(u -> users.contains(id.getId()))
                .collect(Collectors.toList());
        if (foundUsers.size() == 0) {
            throw new UserNotFoundException();
        }
        return foundUsers;
    }
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 80
22.01.2022, 00:36  [ТС]
А можно без паттерна, а то еще не совсем понимаю их)
Я попробовал сделать без них, но оно выдает просто:

User: 11|null|null|nullnull
0
33 / 25 / 11
Регистрация: 11.10.2019
Сообщений: 162
22.01.2022, 00:44
Petr Kracovis, Ок.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Override
public List<User> findUsersByIds(List<Integer> ids) {
    List<User> foundUsers = new ArrayList<>();
    for (int id : ids) {
        for (User user : users) {
            if (user.getId() == id) {
                foundUsers.add(user);
            }
        }
    }
    if (foundUsers.size() == 0) {
        throw new UserNotFoundException();
    }
    return foundUsers;
}
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 80
22.01.2022, 00:52  [ТС]
for (User user : users) {
а в этой строке,users,это что?Точнее, от куда?
0
33 / 25 / 11
Регистрация: 11.10.2019
Сообщений: 162
22.01.2022, 00:55
Твоя имплементация DataMapper должна была содержать это поле, в нем хранятся подгруженные с csv файла пользователи. По крайней мере я тебе советовал так сделать.
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 80
22.01.2022, 01:20  [ТС]
Я просто не совсем понял users = <your_csv_repo>.getUsers()
0
33 / 25 / 11
Регистрация: 11.10.2019
Сообщений: 162
22.01.2022, 01:24
Не важно. Покажи реализацию любого метода поиска.
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 80
22.01.2022, 01:26  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@Override
    public User findUserById(int id) {
        String readFile = "src/main/resources/users.scv";
        User idUser = new User(id, null, null, null, null);
        try {
            List<String> lines = Files.readAllLines(Paths.get(readFile));
            for (String line : lines) {
                String[] splitFile = line.split("\\|");
                ArrayList<String> userList = new ArrayList<>();
                Collections.addAll(userList, splitFile);
                if (Integer.parseInt(userList.get(0)) == id) {
                    idUser = new User((Integer.parseInt(userList.get(0))),
                            userList.get(1),
                            userList.get(2),
                            userList.get(3),
                            Role.valueOf(userList.get(4).toUpperCase()));
                    return idUser;
                }
            }
        } catch (IOException e) {
            e.printStackTrace(System.err);
        }
        return idUser;
    }
0
33 / 25 / 11
Регистрация: 11.10.2019
Сообщений: 162
22.01.2022, 01:33
Понятно. Данный подход как-минимум нарушает принцип DRY (dont repeat yourself).
Цитата Сообщение от Hamster83 Посмотреть сообщение
тебе нужно будет создать репозиторий на базе списка, который будет инициализироваться данными из csv файла. Т.е. читаешь этот файл построчно, для каждой строки создаешь объект User, инициализируешь его данными из этой строки и добавляешь его в список.
Предлагаю в DataMapper добавить поле final List<Users> users и в конструкторе инициализировать его так, как описано выше ↑
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 80
23.01.2022, 18:27  [ТС]
Все зделал,все получилось,спасибо большое за помощь!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.01.2022, 18:27
Помогаю со студенческими работами здесь

First chance exception at $77ADB09E. Exception class EAccessViolation with message 'Access Violation'. Process
Объясните в каких случаях возникает эта ошибка, из-за чего? Как справиться с этой ошибкой? Только плиз на примере и доступными словами, т....

Ошибка: First chance exception at $FEEEFEEE. Exception class $C0000005 with message 'access violation at 0xfeeefeee:
Здравствуйте! Подскажите пожалуйста, из-за чего может возникнуть такая ошибка?: First chance exception at $FEEEFEEE. Exception class...

Ошибка First chance exception at $75A6D36F. Exception class EAccessViolation.
на что программа ругается не пойму((( подскажите вот такая ошибка First chance exception at $75A6D36F. Exception class EAccessViolation...

Database Exception – yii\db\Exception ↵ Caused by: PDOException
&quot;Database Exception – yii\db\Exception Caused by: PDOException&quot; Помогите , пожалуйста, разобраться откуда пляшет эта ошибка? ...

Database Exception – yii\db\Exception ↵ Caused by: PDOException
Database Exception – yii\db\Exception ↵ Caused by: PDOException Отчего это может быть? Добавлено через 49 минут Это на строчке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Настройка записи справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru