2011-02-08 3 views
0

Мне нужно написать весь объект в файл и получить, когда захочу. Предположим, я хочу написать объект класса «Студент», который имеет такие атрибуты, как оценки, имя, ролик и т. Д. И когда я хочу получить доступ к этим атрибутам и манипулировать ими позже, когда мне нужно. Можете ли вы показать мне способ сделать это?Запись объекта в файл

ответ

4

Использование ObjectOutputStream.

public class Student implements Serializable { 

} 

FileOutputStream fos = new FileOutputStream("Students.dat"); 
ObjectOutputStream oos = new ObjectOutputStream(fos); 

Student someStudent = new Student(); 

oos.writeObject(someStudent); 

oos.close(); 

Нравится так.

1

Самый простой способ сделать то, что вы ищете является Object Serialization.

В принципе, можно добавить интерфейс к вашему Student класса, Serializable, который позволит вам передавать объекты этого класса к ObjectOutputStream. Вы можете использовать этот поток для записи этих студентов в файлы на диске. Позже их можно прочитать через ObjectInputStream, которые будут изменены снова.

1

Если у вас есть простые JavaBeans, вы можете использовать java.beans.XMLEncoder/XMLDecoder.

Еще один способ - использовать JAXB.

0

Эти методы должны помочь вам, ваш класс студент должен реализовать serilizable, использовать его как:

Student s1 = новый Student(); objectToFile ("test.ser", s1); Студент s2 = fileToObject ("test.ser");

public static void objectToFile(String fileName, Serializable object){ 
    ObjectOutputStream oos = null; 
    try { 
     oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(fileName))); 
     oos.writeObject(object); 
    } catch (Exception e) { 
     System.out.println(e.getMessage()); 
    } finally{ 
     try { 
      oos.flush(); 
      oos.close(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
} 

public static Object fileToObject(String fileName){ 
    ObjectInputStream ois = null; 
    try { 
     ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fileName))); 
     return ois.readObject(); 
    } catch (Exception e) { 
     return null; 
    } finally{ 
     try { 
      ois.close(); 
     } catch (IOException e) { 
      System.out.println(e.getMessage()); 
     } 
    } 
} 
Смежные вопросы