Чтение и запись объектов в Java
Сериализация - это преобразование объекта в последовательность байтов, чтобы объект можно было легко сохранить в постоянном хранилище или потоковом потоке даже на другой платформе или в сети. Затем один и тот же поток байтов можно десериализовать - преобразовать в реплику исходного объекта. Поскольку создание потока байтов является нейтральным по отношению к платформе, как только объекты, созданные в одной системе, могут быть десериализованы на другой платформе. Это очень полезно, когда вы хотите передать данные одного объекта по сети, например, с одной JVM на другую. Здесь, в Java, механизм сериализации встроен в платформу, но вам необходимо реализовать интерфейс Serializable, чтобы сделать объект сериализуемым.
Пример
import Java.io.*; class Student implements Java.io.Serializable{ int ID; String Name; Student(int ID, String Name){ this.ID = ID; this.Name=Name; } }
Как читать и записывать объекты Java из / в файл?
ObjectOutputStream используется для сериализации и записи в файл, в то время как ObjectInputStream может использоваться аналогичным образом для чтения сериализованных объектов из файла
Пример
import Java.util.*; import Java.io.*; class Student implements Java.io.Serializable { int ID; String Name; Student(int ID, String Name){ this.ID = ID; this.Name=Name; } public String toString() { return "ID:" + ID + "\nName: " + Name; } } public class TestClass{ public static void main(String[] args) { Student st1 = new Student(100, "Bill"); Student st2 = new Student(101, "Gates"); // запись объекта в файл try { FileOutputStream fos = new FileOutputStream(new File("D:\\JavaObjects.txt")); ObjectOutputStream oos = new ObjectOutputStream(fos); // Запись объектов в файл oos.writeObject(st1); oos.writeObject(st2); oos.close(); fos.close(); } catch (IOException e){ e.printStackTrace(); } // Чтение объектов из файла try{ FileInputStream fis = new FileInputStream(new File("D:\\JavaObjects.txt")); ObjectInputStream ois = new ObjectInputStream(fis); Student s1 = (Student) ois.readObject(); Student s2 = (Student) ois.readObject(); System.out.println(s1.toString()); System.out.println(s2.toString()); fis.close(); ois.close(); }catch(Exception ex){ ex.printStackTrace(); } } }