Јава ОбјецтОутпутСтреам (са примерима)

У овом упутству ћемо научити о Јава ОбјецтОутпутСтреам и његовим методама уз помоћ примера.

ObjectOutputStreamКласа у java.ioпакету може да се користи за писање објекте који се могу прочитати по ObjectInputStream.

Проширује OutputStreamапстрактну класу.

Рад ОбјецтОутпутСтреам

У основи, ObjectOutputStreamкодира Јава објекте користећи име класе и вредности објекта. И, према томе, генерише одговарајуће токове. Овај процес је познат под називом сериализација.

Ти конвертовани токови се могу чувати у датотекама и могу се преносити између мрежа.

Напомена : ObjectOutputStreamКласа пише само оне објекте који имплементирају Serializableинтерфејс. То је зато што објекте треба сериализовати док пишу у ток

Направите ОбјецтОутпутСтреам

Да бисмо креирали објектни излазни ток, прво морамо да увозимо 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); 

У горњем примеру смо креирали објектни излазни ток по имену објСтреам који је повезан са излазним током датотеке названим филеСтреам.

Методе ОбјецтОутпутСтреам

ObjectOutputStreamКласа обезбеђује имплементација за различитим методама присутни у OutputStreamкласи.

метода врите ()

  • write() - уписује бајт података у излазни ток
  • writeBoolean() - записује податке у логичком облику
  • writeChar() - записује податке у облику карактера
  • writeInt() - записује податке у целобројни облик
  • writeObject() - записује објекат у излазни ток

Пример 1: Јава ОбјецтОутпутСтреам

Погледајмо како можемо да користимо 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(); ) ) ) 

Оутпут

 Целобројни подаци: 5 Подаци о низу: Ово је програмирано 

У горњем примеру, користили смо readInt()методу и readObject()метод за читање целобројних података и података о објектима из датотека.

Овде смо користили ObjectOutputStreamза уписивање података у датотеку. Затим читамо податке из датотеке помоћу ObjectInputStream.

Пример 2: Јава ОбјецтОутпутСтреам

Узмимо још један пример,

 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(); ) ) ) 

Оутпут

 Име пса: Тисон Пасмина паса: лабрадор 

У горњем примеру смо створили

  • ObjectOutputStreamпод називом објОут користећи FileOutputStreamименовани филеОут
  • ObjectInputStreamпод називом објИн помоћу FileInputStreamименоване датотекеИн.
  • Објект дог1 класе Дог.

Овде смо тада користили излазни ток објекта за уписивање објекта у датотеку. И, улазни ток објекта за читање објекта из датотеке.

Напомена : Класа Дог имплементира Serializableинтерфејс. То је зато што ObjectOutputStreamједини уписује објекте који се могу сериализовати у излазни ток.

Остале методе ОбјецтОутпутСтреам

Методе Описи
flush() брише све податке из излазног тока
drain() ставља све баферисане податке у излазни ток
close() затвара излазни ток

Да бисте сазнали више, посетите Јава ОбјецтОутпутСтреам (званична Јава документација).

Занимљиви Чланци...