Рубрики
Без рубрики

Как записать объект в файл на Java (ObjectOutputStream)

В этом примере показано, как использовать “ObjectOutputStream” для записи объектов в файл на Java, сериализация akka.

В этом примере показано, как использовать ObjectOutputStream для записи объектов в файл на Java, akka Сериализация .

  public static void writeObjectToFile(Person obj, File file) throws IOException {
      try (FileOutputStream fos = new FileOutputStream(file);
           ObjectOutputStream oos = new ObjectOutputStream(fos)) {
          oos.writeObject(obj);
          oos.flush();
      }
  }

Примечание Больше Примеры сериализации и десериализации Java

1. Объект Java

Мы можем сериализовать или упорядочить объект, который реализует Сериализуемый интерфейс.

package com.mkyong.io.object;

import java.io.Serializable;
import java.math.BigDecimal;

public class Person implements Serializable {

    private static final long serialVersionUID = 1L;
    private String name;
    private int age;

    // if transient, JVM ignore this field for serialization
    private transient BigDecimal salary;

    public Person(String name, int age, BigDecimal salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public BigDecimal getSalary() {
        return salary;
    }

    public void setSalary(BigDecimal salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                '}';
    }
}

2. Записать объект в файл

В приведенном ниже примере объект Person будет записан в файл с именем person.bin .

package com.mkyong.io.object;

import java.io.*;
import java.math.BigDecimal;

public class HelloSerializationFile {

    public static void main(String[] args) throws IOException, ClassNotFoundException {

        Person person = new Person("mkyong", 50, new BigDecimal(1000));

        File file = new File("person.bin");

        writeObjectToFile(person, file);

        Person p = readObjectFromFile(file);

        System.out.println(p);

    }

    // Serialization
    // Save object into a file.
    public static void writeObjectToFile(Person obj, File file) throws IOException {
        try (FileOutputStream fos = new FileOutputStream(file);
             ObjectOutputStream oos = new ObjectOutputStream(fos)) {
            oos.writeObject(obj);
            oos.flush();
        }
    }

    // Deserialization
    // Get object from a file.
    public static Person readObjectFromFile(File file) throws IOException, ClassNotFoundException {
        Person result = null;
        try (FileInputStream fis = new FileInputStream(file);
             ObjectInputStream ois = new ObjectInputStream(fis)) {
            result = (Person) ois.readObject();
        }
        return result;
    }

}

Выход

  Person{name='mkyong', age=50, salary=null}

3. Дополнительные примеры сериализации

  // Serialization
  // Save object into a file.
  public static void writeObjectToFile(Person obj, File file) throws IOException {
      try (FileOutputStream fos = new FileOutputStream(file);
           ObjectOutputStream oos = new ObjectOutputStream(fos)) {
          oos.writeObject(obj);
          oos.flush();
      }
  }

  // Serialization
  // Convert object to OutputStream
  public static void writeObjectToStream(Object obj, OutputStream output) throws IOException {
      try (ObjectOutputStream oos = new ObjectOutputStream(output)) {
          oos.writeObject(obj);
          oos.flush();
      }
  }

  // Serialization
  // Convert object to byte[]
  public static byte[] writeObjectToStream(Object obj) {
      ByteArrayOutputStream boas = new ByteArrayOutputStream();
      try (ObjectOutputStream ois = new ObjectOutputStream(boas)) {
          ois.writeObject(obj);
          return boas.toByteArray();
      } catch (IOException ioe) {
          ioe.printStackTrace();
      }
      throw new RuntimeException();
  }

Скачать Исходный Код

$клон git https://github.com/mkyong/core-java.git

$cd java-ввод-вывод/com/mkyong/ввод-вывод/объект

Рекомендации

Оригинал: “https://mkyong.com/java/how-to-write-an-object-to-file-in-java/”