@Sergei1111
Java

При считывании отображаются пустые поля?

public static void load() {
        Contact contact = new Contact("", "", "", 0);
        try {
            File filesave = new File("Contact.txt");
            FileInputStream fis = new FileInputStream(filesave);
            ObjectInputStream ois = new ObjectInputStream(fis);
            contact = (Contact) ois.readObject();
            ois.close();
            System.out.println("Список: " + contact);

        } catch (FileNotFoundException e) {

        } catch (IOException ex) {

        } catch (ClassNotFoundException ex) {
            Logger.getLogger(SaveLoad.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день.
Ну, во-первых, вы можете использовать try-with-resources вместо try-catch.
Во-вторых, стрим гораздо лучше закрывать в finally блоке, если решили все же использовать try catch
В-третьих, лучше писать в логи те эксепшены FileNotFoundException и IOException
В-четвертых, вы закрываете ObjectInputStream, но не FileInputStream (а надо бы)
Теперь, по существу - предположу, что вы Contact contact = new Contact("", "", "", 0);
Можно гораздо лучше написать данный участок кода. Например, считывать данные и если null, то используя класс Optional создавать новый пустой объект (или не создавать вовсе).
Было бы неплохо, выложить содержимое вашего файла Contact.txt, чтобы иметь представление о том, как именно хранятся данные в файле. Как вы его читаете. Нужно ли их как-то разделять и т.д.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
19 июн. 2024, в 06:58
15000 руб./за проект
19 июн. 2024, в 01:11
7000 руб./за проект
18 июн. 2024, в 23:10
15000 руб./за проект