Как загрузить экземпляры из файлов во многие списки? - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь сохранить свои списки в файле с именем «Unidade de saúde», и я записываю в файл каждый список. И я думаю, что это работает, потому что когда я сохраняю что-то, оно появляется в файле.

Теперь у меня есть Сериализуемый в каждом классе, поэтому я думаю, что он работает нормально.

package entidades;

//imports

public class Gravar {

    public static void gravarArquivoBinario(List<Profissional> profissional, List<Utente> utente, List<Familia> familia, List<Associa> asso, List<Cuidados> cui) {
        File arq = new File("Unidade de saúde.txt");
        try {
            arq.delete();
            arq.createNewFile();

            ObjectOutputStream objOutput = new ObjectOutputStream(new FileOutputStream(arq));
            objOutput.writeObject(profissional);
            objOutput.writeObject(utente);
            objOutput.writeObject(familia);
            objOutput.writeObject(asso);
            objOutput.writeObject(cui);
            objOutput.close();

        }catch(IOException erro) {
            System.out.printf("Erro: %s", erro.getMessage());
        }
    }

И теперь я я пытаюсь загрузить в мои списки, но он загружает их в программу, которую я делаю, я делаю это ??

@SuppressWarnings("unchecked")
    public static List<Object> lerArquivoBinario(List<Profissional> profissional, List<Utente> utente, List<Familia> familia, List<Associa> asso, List<Cuidados> cui) {
        List<Profissional> listaPro = new ArrayList<Profissional>();
        List<Utente> listaUte = new ArrayList<Utente>();
        List<Familia> listaFam = new ArrayList<Familia>();
        List<Associa> listaAss = new ArrayList<Associa>();
        List<Cuidados> listaCui = new ArrayList<Cuidados>();
          try {
            File arq = new File("Unidade de saúde.txt");
            if (arq.exists()) {
               ObjectInputStream objInput = new ObjectInputStream(new FileInputStream(arq));
               listaPro = (List<Profissional>)objInput.readObject();
               listaUte = (List<Utente>)objInput.readObject();
               listaFam = (List<Familia>)objInput.readObject();
               listaAss = (List<Associa>)objInput.readObject();
               listaCui = (List<Cuidados>)objInput.readObject();
               objInput.close();
            }
          } catch(IOException erro1) {
              System.out.printf("Erro: %s", erro1.getMessage());
          } catch(ClassNotFoundException erro2) {
              System.out.printf("Erro: %s", erro2.getMessage());
          }

          return(listaPro);
    }
}

И я знаю, что возврат (listaPro) неверен, но я не знаю, как вернуть много списков.

1 Ответ

0 голосов
/ 17 января 2020

Вы можете записывать в файлы, только если указанный тип реализует Serializable. List это просто интерфейс и не расширяет Serializable, вы уверены, что profissional, utente et c. реализует это?

...