Java 객체를 파일에 저장/파일에서 읽는 방법

1. 파일에 객체 저장
Java 언어는 Serializable 인터페이스를 구현한 클래스의 객체만 파일에 저장할 수 있으며 다음과 같은 방법을 사용할 수 있습니다.

public static void writeObjectToFile(Object obj)
  {
    File file =new File("test.dat");
    FileOutputStream out;
    try {
      out = new FileOutputStream(file);
      ObjectOutputStream objOut=new ObjectOutputStream(out);
      objOut.writeObject(obj);
      objOut.flush();
      objOut.close();
      System.out.println("write object success!");
    } catch (IOException e) {
      System.out.println("write object failed");
      e.printStackTrace();
    }
  }
매개 변수obj는 반드시 Serializable 인터페이스를 실현해야 합니다. 그렇지 않으면java를 던집니다.io.NotSerializableException 예외입니다.또한 만약에 쓴 대상이 하나의 용기, 예를 들어 List, Map이라면 용기의 모든 요소가 Serializable 인터페이스를 실현했음을 보증해야 한다.예를 들어 다음 방법에 따라 Hashmap을 설명하고 writeObjectToFile 방법을 호출하면 이상이 발생합니다.그러나 Hashmap이라면 문제가 없을 것이다. 왜냐하면 String 클래스는 Serializable 인터페이스를 실현했기 때문이다.또한 자신이 만든 클래스라면 계승된 기본 클래스가 Serializable을 실현하지 못하면 이 클래스는 Serializable을 실현해야 합니다. 그렇지 않으면 이런 방법을 통해 파일에 쓸 수 없습니다.

Object obj=new Object();
    //failed,the object in map does not implement Serializable interface
    HashMap<String, Object> objMap=new HashMap<String,Object>();
    objMap.put("test", obj);
    writeObjectToFile(objMap);
2. 파일에서 객체 읽기
다음과 같은 방법으로 파일에서 객체를 읽을 수 있습니다.

public static Object readObjectFromFile()
  {
    Object temp=null;
    File file =new File("test.dat");
    FileInputStream in;
    try {
      in = new FileInputStream(file);
      ObjectInputStream objIn=new ObjectInputStream(in);
      temp=objIn.readObject();
      objIn.close();
      System.out.println("read object success!");
    } catch (IOException e) {
      System.out.println("read object failed");
      e.printStackTrace();
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
    return temp;
  }
객체를 읽은 후 객체의 실제 유형에 따라 변환하면 됩니다.
이상의 자바는 대상을 파일에 저장하고/파일에서 대상을 읽는 방법은 여러분에게 모든 내용을 공유하는 것입니다. 참고하시고 저희를 많이 사랑해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기