读取并显示序列化文件的所有数据

时间:2015-03-13 06:01:20

标签: java object serialization file-io

我一直试图显示序列化文件中的所有数据,但我不知道该怎么做。我只能显示最后的数据。如何在最后一个之前显示所有数据?

这是我一直在使用的方法:

public void lecturaRegistro() throws ClassNotFoundException {

    try {
        while (true) {
            FileInputStream fis = new FileInputStream(f);
            ObjectInputStream ois = new ObjectInputStream(fis);

            Usuario usu = (Usuario) ois.readObject();
            System.out.println("Login: " + usu.getLogin());
            System.out.println("Clave: " + usu.getClave());
            System.out.println("Tipo: " + usu.getTipoU());

            ois.close();
            break;
        }

    } catch (FileNotFoundException e) {

    } catch (IOException e) {

    }

}

我做错了什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

像这样更改你的代码

 FileInputStream fis = new FileInputStream(f);
        ObjectInputStream ois = new ObjectInputStream(fis);

        while (true) {

            Usuario usu = (Usuario) ois.readObject();
            if (usu == null) {
                break;
            } else {
                System.out.println("Login: " + usu.getLogin());
                System.out.println("Clave: " + usu.getClave());
                System.out.println("Tipo: " + usu.getTipoU());
            }

        }
        ois.close();

您只读取一个对象..您需要读取整个文件以显示所有对象