Класс Java ObjectOutputStream
Класс Java ObjectOutputStream
В этом руководстве мы узнаем о Java ObjectOutputStream и его методах с помощью примеров.
ObjectOutputStream
класс java.io
package можно использовать для записи объектов, которые могут быть прочитаны ObjectInputStream
.
Он расширяет OutputStream
абстрактный класс.
Работа ObjectOutputStream
По сути, ObjectOutputStream
кодирует объекты Java, используя имя класса и значения объекта. И, следовательно, генерирует соответствующие потоки. Этот процесс называется сериализацией.
Эти преобразованные потоки можно хранить в файлах и передавать по сетям.
Примечание :ObjectOutputStream
класс записывает только те объекты, которые реализуют Serializable
интерфейс. Это связано с тем, что объекты необходимо сериализовать при записи в поток
Создать ObjectOutputStream
Чтобы создать поток вывода объекта, мы должны импортировать java.io.ObjectOutputStream
пакет первый. Как только мы импортируем пакет, вот как мы можем создать выходной поток.
// Creates a FileOutputStream where objects from ObjectOutputStream are written
FileOutputStream fileStream = new FileOutputStream(String file);
// Creates the ObjectOutputStream
ObjectOutputStream objStream = new ObjectOutputStream(fileStream);
В приведенном выше примере мы создали поток вывода объекта с именем objStream. который связан с потоком вывода файла с именем fileStream .
<час>Методы ObjectOutputStream
ObjectOutputStream
класс предоставляет реализации для различных методов, представленных в OutputStream
класс.
Метод записи()
write()
- записывает байт данных в выходной потокwriteBoolean()
- записывает данные в булевой формеwriteChar()
- записывает данные в символьной формеwriteInt()
- записывает данные в целочисленной формеwriteObject()
- записывает объект в выходной поток
Пример 1:Java ObjectOutputStream
Давайте посмотрим, как мы можем использовать ObjectOutputStream
. для хранения объектов в файле и ObjectInputStream
читать эти объекты из файлов
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
class Main {
public static void main(String[] args) {
int data1 = 5;
String data2 = "This is programiz";
try {
FileOutputStream file = new FileOutputStream("file.txt");
// Creates an ObjectOutputStream
ObjectOutputStream output = new ObjectOutputStream(file);
// writes objects to output stream
output.writeInt(data1);
output.writeObject(data2);
// Reads data using the ObjectInputStream
FileInputStream fileStream = new FileInputStream("file.txt");
ObjectInputStream objStream = new ObjectInputStream(fileStream);
System.out.println("Integer data :" + objStream.readInt());
System.out.println("String data: " + objStream.readObject());
output.close();
objStream.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
Вывод
Integer data: 5 String data: This is programiz
В приведенном выше примере мы использовали readInt()
метод и readObject()
метод для чтения целочисленных данных и объектных данных из файлов.
Здесь мы использовали ObjectOutputStream
для записи данных в файл. Затем мы читаем данные из файла с помощью ObjectInputStream
.
Пример 2:Java ObjectOutputStream
Возьмем другой пример,
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Dog implements Serializable {
String name;
String breed;
public Dog(String name, String breed) {
this.name = name;
this.breed = breed;
}
}
class Main {
public static void main(String[] args) {
// Creates an object of Dog class
Dog dog1 = new Dog("Tyson", "Labrador");
try {
FileOutputStream fileOut = new FileOutputStream("file.txt");
// Creates an ObjectOutputStream
ObjectOutputStream objOut = new ObjectOutputStream(fileOut);
// Writes objects to the output stream
objOut.writeObject(dog1);
// Reads the object
FileInputStream fileIn = new FileInputStream("file.txt");
ObjectInputStream objIn = new ObjectInputStream(fileIn);
// Reads the objects
Dog newDog = (Dog) objIn.readObject();
System.out.println("Dog Name: " + newDog.name);
System.out.println("Dog Breed: " + newDog.breed);
objOut.close();
objIn.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
Вывод
Dog Name: Tyson Dog Breed: Labrador
В приведенном выше примере мы создали
ObjectOutputStream
с именем objOut используяFileOutputStream
с именем fileOutObjectInputStream
с именем objIn используяFileInputStream
с именем fileIn .- Объект dog1 Собаки класс.
Здесь мы затем использовали поток вывода объекта для записи объекта в файл. И поток ввода объекта для чтения объекта из файла.
Примечание :Собака класс реализует Serializable
интерфейс. Это потому, что ObjectOutputStream
записывает в выходной поток только те объекты, которые могут быть сериализованы.
Другие методы ObjectOutputStream
Методы | Описания |
---|---|
flush() | удаляет все данные из выходного потока |
drain() | помещает все буферизованные данные в выходной поток |
close() | закрывает выходной поток |
Чтобы узнать больше, посетите Java ObjectOutputStream (официальная документация по Java).
java