存储对象的数据库文件

时间:2016-09-21 05:46:00

标签: java arrays file serialization

我需要将对象存储在文件中(.txt,.mio,.Whatever)

我正在使用java

我试图实现Serialize类来序列化对象然后存储它们,但是我无法获得所需的结果。

修改

这个想法是将多个对象存储在同一个文件中,然后打开文件并查找特定对象,操作对象。等等 就好像它只是一个SQL数据库,只有对象存储在文件中。

哪个会解决这个问题?一种在文件中存储对象的方法,然后你可以调用它们,搜索它们,将它们存储在一个数组中。

感谢任何想法和帮助。

CODE

   import java.io.Serializable;

public class Contacto implements Serializable {

    private String nombre;
    private String apellido;

    public Contacto(String nombre, String apellido){
        this.nombre = nombre;
        this.apellido = apellido;
    }

    public String getNombre(){
        return this.nombre;
    }

    public String getApellido(){
        return this.apellido;
    }

    public void setNombre(String n){
        this.nombre = n;
    }

    public void setApellido(String a){
        this.apellido = a;
    }

    public String toString(){
        return this.getApellido() +" "+ this.getNombre();
    }
}

/////////////////////////////////////////////// /////////////////////////////

import java.io.*;

public class Serializador{

    // Escribe un objecto en un archivo
    private ObjectOutputStream escritorArchivo;

    // Lee un objecto que este guardado en un archivo
    private ObjectInputStream lectorArchivo;


    // Al metodo le pasamos el objeto que queremos serializar y lo guardará en el archivo que se le especifique al FileOutputStream (en este caso "objeto.mio")
    public void escribirArchivo(Object objeto){
        try{
            escritorArchivo = new ObjectOutputStream(new FileOutputStream("objeto.mio"));
            escritorArchivo.writeObject(objeto);
        } catch(FileNotFoundException fnfex){
            fnfex.printStackTrace();
        } catch(IOException ioex){
            ioex.printStackTrace();
        }
    }

    public Object leerArchivo(String rutaArchivo){
        Object lectura = null;
        try{
            lectorArchivo = new ObjectInputStream(new FileInputStream(rutaArchivo));
            lectura = lectorArchivo.readObject();
        } catch(FileNotFoundException fnfex){
            fnfex.printStackTrace();
        } catch(IOException ioex){
            ioex.printStackTrace();
        } catch(ClassNotFoundException cnfex){
            cnfex.printStackTrace();
        }
        return lectura;
    }

}

代码显示了基本概念,但这是一个可以丢弃的想法。

非常感谢。

0 个答案:

没有答案