Java 如何将实例从文件加载到多个列表?

Java 如何将实例从文件加载到多个列表?,java,eclipse,list,file,serialization,Java,Eclipse,List,File,Serialization,我正试图将我的列表保存在名为“Unidade de saúde”的文件中, 我把每个清单都写在文件里。 我认为它是有效的,因为当我保存一些东西时,它会出现在文件上 我现在在每门课上都可以序列化,所以我认为它工作得很好 package entidades; //imports public class Gravar { public static void gravarArquivoBinario(List<Profissional> profissional, List

我正试图将我的列表保存在名为“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());
        }
    }
包实体;
//进口
公共级坟墓{
公共静态无效Gravarquivobinario(列表专业人员、列表中尉、列表家族、列表助理、列表cui){
文件arq=新文件(“Unidade de saúde.txt”);
试一试{
arq.delete();
arq.createNewFile();
ObjectOutputStream objOutput=新的ObjectOutputStream(新文件输出流(arq));
对象输出写入对象(专业);
对象输出写入对象(utente);
对象输出写入对象(家庭);
对象输出写入对象(asso);
对象输出写入对象(cui);
objOutput.close();
}捕获(IOERRO异常){
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);
    }
}
@SuppressWarnings(“未选中”)
公共静态列表Lerrquivobinario(列表专业人员、列表中尉、列表家族、列表助理、列表cui){
List listaPro=new ArrayList();
List listaUte=new ArrayList();
List listaFam=new ArrayList();
List listaAss=new ArrayList();
List listaCui=new ArrayList();
试一试{
文件arq=新文件(“Unidade de saúde.txt”);
if(arq.exists()){
ObjectInputStream objInput=新ObjectInputStream(新文件输入流(arq));
listaPro=(List)objInput.readObject();
listaUte=(List)objInput.readObject();
listaFam=(List)objInput.readObject();
listaAss=(List)objInput.readObject();
listaCui=(List)objInput.readObject();
objInput.close();
}
}捕获(IO1){
System.out.printf(“Erro:%s”,erro1.getMessage());
}捕获(ClassNotFoundException 2){
System.out.printf(“Erro:%s”,erro2.getMessage());
}
返回(listaPro);
}
}

我知道返回(listaPro)是错误的,但我不知道如何返回许多列表。

如果指定的类型实现了
可序列化
,则只能在文件中写入。
列表
只是一个接口,并没有扩展可序列化的
列表,您确定profissional、utinte等实现了它吗?

打印异常的堆栈跟踪,并发布它。它告诉你哪里出了问题,哪里出了问题。但是每门课都必须有它吗?或者只是主对象??要序列化的每个对象都必须是可序列化的。如果不是,根据定义,它就无法序列化。所以列表、它们包含的所有对象、包含的对象包含的所有对象等等都必须是可序列化的。我已经更新了代码和文本,但我仍然无法使其工作。不能使其工作,是指找不到“Unidade de saúde.txt”吗?