logo

Java.io.ObjectInputStream Клас в Java | Комплект 1

Класът ObjectInputStream десериализира примитивните данни и обекти, написани преди това от ObjectOutputStream .

  • Използват се както ObjectOutputStream, така и ObjectInputStream, тъй като осигуряват съхранение за графики на обект.
  • Той гарантира, че обектът, за който работи, съответства на класовете на JVM, т.е. Java Virtual Machine. Само тези обекти могат да бъдат прочетени от потоците, които поддържат Може да се сериализира или Възможност за екстернализиране - IO класове в противен случай грешка. Serializable е основно вид маркер за JVM (Java Virtual Machine), който го насочва да изпише състоянието на обекта, присъстващ в Stream

Декларация: 

public class ObjectInputStream  
extends InputStream
implements ObjectInput ObjectStreamConstants

Конструктори: 



  • защитен ObjectInputStream() : Помогнете на подкласовете да не разпределят частни данни, използвани от ObjectInputStream, ако внедряват повторно ObjectInputStream.
  • ObjectInputStream(InputStream източник_вход) : Създайте ObjectInputStream, който чете данни от входния поток „source_input“.

Методи: 

  • read() : java.io.ObjectInputStream.read() чете байта данни и блокира, в случай че няма налични данни за четене. Синтаксис:
public int read()  
Parameters :
-----------
Return :
reads byte else return -1 if end of Stream is detected.
Exception :
-> IOException : in case of any IO error occurs.
  • readBoolean() : java.io.ObjectInputStream.readBoolean() чете в булево.
    Синтаксис:
public int readBoolean()  
Parameters :
-----------
Return :
reads in a boolean.
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if end of the stream is reached.
Java
// Java program explaining the working of read() readBoolean() method import java.io.*; public class NewClass {  public static void main(String[] args) throws IOException  {  // create a new file with an ObjectOutputStream and ObjectInputStream  FileOutputStream geek_out = new FileOutputStream("GEEKS.txt");    ObjectOutputStream geek_outStream = new ObjectOutputStream(geek_out);  ObjectInputStream Geek_inStream =   new ObjectInputStream(new FileInputStream("GEEKS.txt"));  // Methods covered in later  geek_outStream.writeBoolean(true);  geek_outStream.writeUTF("Geeks For Geeks");  geek_outStream.flush();  // Use of readBoolean()   System.out.println("USe of readBoolean() : " + Geek_inStream.readBoolean());  System.out.print("Use of read() method in Java : ");    // Use of read() method : reading the content of file  for (int i = 0; i < Geek_inStream.available();)  {  System.out.print((char) Geek_inStream.read());  }  } } 
  • Изход:
USe of readBoolean() : true  
Use of read() method in Java : Geeks For Geeks
  • read(byte[] buffer int offset int maxlen) : java.io.ObjectInputStream.read(byte[] buffer int offset int maxlen) чете част от данните от „буфера“, започвайки от изместена позиция до максимална позиция на буфера. Синтаксис:
public int read(byte[] buffer int offset int maxlen)  
Parameters :
buffer : buffer to be read
offset : starting position of the buffer
maxlen : max. no. of bytes to be read
Return :
reads 'maxlen' bytes of data else return -1 if end of Stream is detected.
Exception :
-> IOException : in case of any IO error occurs.
Java
// Java program explaining the working of // read(byte[] buffer int offset int maxlen) import java.io.*; public class NewClass {  public static void main(String[] args) throws IOException  {  // create a new file with an ObjectOutputStream and ObjectInputStream  FileOutputStream geek_out = new FileOutputStream("GEEKS.txt");    ObjectOutputStream geek_outStream = new ObjectOutputStream(geek_out);    // create an ObjectInputStream for the file we created before  ObjectInputStream Geek_inStream  = new ObjectInputStream(new FileInputStream("GEEKS.txt"));  geek_outStream.writeUTF("GeeksForGeeks");  geek_outStream.flush();  byte[] buffer = new byte[25];  // Use of read(byte[] buffer int offset int maxlen)  Geek_inStream.read(buffer 2 20);  System.out.print("Use of read(buffer offset maxlen) : ");  for (int i = 0; i < 19; i++)  {  System.out.print((char)buffer[i]);  }  } } 
  • Изход: 
GeeksForGeeks  
  • readByte() : java.io.ObjectInputStream.readByte() чете 8-битов байт.
    Синтаксис:
public byte readByte()  
Parameters :
-----------
Return :
reads 8-bit byte.
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if end of the stream is reached.
  • readChar() : java.io.ObjectInputStream.readChar() чете 16-битов символ.
    Синтаксис:
public int read()  
Parameters :
-----------
Return :
reads 16-bit of char.
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if end of the stream is reached.
  • readDouble() : java.io.ObjectInputStream.readDouble() чете 64 бита двойно.
    Синтаксис:
public double readDouble()  
Parameters :
-----------
Return :
reads 64 bit double.
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if end of the stream is reached.
  • readFloat() : java.io.ObjectInputStream.readFloat() чете 32-битово плаващо число.
    Синтаксис:
public float readFloat()  
Parameters :
-----------
Return :
reads a 32 bit float.
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if end of the stream is reached.
  • readInt() : java.io.ObjectInputStream.readInt() чете 32 bit int.
    Синтаксис:
public int readInt()  
Parameters :
-----------
Return :
reads a 32 bit int.
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if end of the stream is reached.
  • readLong() : java.io.ObjectInputStream.readLong() чете 64 бита дълго.
    Синтаксис:
public long readLong()  
Parameters :
-----------
Return :
reads a 64 bit long.
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if end of the stream is reached.
Java
// Java program explaining the working of // readChar() writeByte() writeDouble() // writeFloat() writeInt() writeLong() import java.io.*; public class NewClass {  public static void main(String[] args) throws IOException  {  // create a new file with an ObjectOutputStream and ObjectInputStream  FileOutputStream geek_out = new FileOutputStream("GEEKS.txt");  ObjectOutputStream geek_outStream = new ObjectOutputStream(geek_out);    // create an ObjectInputStream for the file we created before  ObjectInputStream Geek_inStream   = new ObjectInputStream(new FileInputStream("GEEKS.txt"));  geek_outStream.writeChar('G');  geek_outStream.writeByte('G');  geek_outStream.writeDouble(00436754746);  geek_outStream.writeFloat(2.12345f);  geek_outStream.writeInt(3576);  geek_outStream.writeLong(368723776);  geek_outStream.flush();  // Use of readChar()  System.out.println("Use of readChar() : " + Geek_inStream.readChar());  // Use of readByte() :  System.out.println("Use of readByte() : " + Geek_inStream.readByte());  // Use of readDouble() :  System.out.println("Use of readDouble() : " + Geek_inStream.readDouble());  // Use of readFloat() :  System.out.println("Use of readFloat() : " + Geek_inStream.readFloat());  // Use of readInt() :  System.out.println("Use of readInt() : " + Geek_inStream.readInt());  // Use of readLong() :  System.out.println("Use of readLong() : " + Geek_inStream.readLong());  } } 
  • Изход: 
Use of readChar() : G  
Use of readByte() : 71
Use of readDouble() : 7.5225574E7
Use of readFloat() : 2.12345
Use of readInt() : 3576
Use of readLong() : 368723776
  • readUnsignedByte() : java.io.ObjectInputStream.readUnsignedByte() чете неподписан 8-битов байт.
    Синтаксис:
public int readUnsignedByte()  
Parameters :
-----------
Return :
reads an unsigned 8 bit byte.
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if end of the stream is reached.
  • readUnsignedShort() : java.io.ObjectInputStream.readUnsignedShort() чете неподписано 16 бита кратко. Синтаксис:
public int readUnsignedShort()  
Parameters :
-----------
Return :
reads an unsigned 16 bit short.
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if end of the stream is reached.
Java
  // Java program explaining the working of // readUnsignedByte() and readUnsignedShort() import java.io.*; public class NewClass {  public static void main(String[] args) throws IOException  {  // create a new file with an ObjectOutputStream and ObjectInputStream  FileOutputStream geek_out = new FileOutputStream("GEEKS.txt");  ObjectOutputStream geek_outStream = new ObjectOutputStream(geek_out);    // create an ObjectInputStream for the file we created before  ObjectInputStream Geek_inStream   = new ObjectInputStream(new FileInputStream("GEEKS.txt"));  geek_outStream.writeByte(111);  geek_outStream.writeShort(121212);  geek_outStream.flush();  // Use of readUnsignedByte()  System.out.println("readUnsignedByte() : "   + Geek_inStream.readUnsignedByte());  // Use of readUnsignedShort() :  System.out.println("readUnsignedShort() : "   + Geek_inStream.readUnsignedShort());  } } 
  • Изход: 
readUnsignedByte() : 111  
readUnsignedShort() : 55676
  • readUTF() : java.io.ObjectInputStream.readUTF() чете низ в модифициран формат UTF-8 (Unicode Transformation Format). UTF -8 означава, че използва 8-битови блокове за представяне на знак.
    Синтаксис:
public String readUTF()  
Parameters :
public final Object readObject()
Return :
reads String in modified UTF-8 (Unicode Transformation Format) format
Exception :
-> IOException : in case of any IO error occurs.
Java
// Java program explaining the working of readUTF() import java.io.*; public class// Java program explaining the working of readUTF() import java.io.*; public class NewClass {  public static void main(String[] args) throws IOException ClassNotFoundException  {  // create a new file with an ObjectOutputStream and ObjectInputStream  FileOutputStream geek_out = new FileOutputStream("GEEKS.txt");  ObjectOutputStream geek_outStream = new ObjectOutputStream(geek_out);  ObjectInputStream Geek_inStream   = new ObjectInputStream(new FileInputStream("GEEKS.txt"));    geek_outStream.writeUTF("gEEKSArehERE");  geek_outStream.flush();  // Use of readUTF() method   System.out.println("Use of readUTF() : " + Geek_inStream.readUTF());  } } 
  • Изход:
Use of readUTF() : gEEKSArehERE  
  • skipBytes(int maxlen) : java.io.ObjectInputStream.skipBytes(int maxlen) пропуска 'maxlen' не. байтове по време на четене.
    Синтаксис:
public int skipBytes(int maxlen)  
Parameters :
maxlen : max. no. of bytes to be skipped
Return :
no. of bytes to be skipped
Exception :
-> IOException : in case of any IO error occurs.
Java
// Java program explaining the working of skipBytes() import java.io.*; public class NewClass {  public static void main(String[] args) throws IOException ClassNotFoundException  {  // create a new file with an ObjectOutputStream and ObjectInputStream  FileOutputStream geek_out = new FileOutputStream("GEEKS.txt");  ObjectOutputStream geek_outStream = new ObjectOutputStream(geek_out);  ObjectInputStream Geek_inStream   = new ObjectInputStream(new FileInputStream("GEEKS.txt"));    geek_outStream.writeUTF("gEEKSArehERE");  geek_outStream.flush();  // Use of skipBytes() :   Geek_inStream.skipBytes(7);    for (int i = 2; i < Geek_inStream.available(); i++)   {  System.out.print((char) Geek_inStream.readByte());  }  } } 
  • Изход: 
Are  
  • readFully(byte[] дестинация) : java.io.ObjectInputStream.readFully(byte[] дестинация) чете всички байтове от източника до целевия масив.
    Синтаксис:
public void readFully(byte[] destination)  
Parameters :
destination : the buffer in which the data is to be read
Return :
returns the 32 bit float read
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if End of stream is reached
Java
// Java program explaining the working of readFully() import java.io.*; public class NewClass {  public static void main(String[] args) throws IOException ClassNotFoundException  {  // create a new file with an ObjectOutputStream and ObjectInputStream  FileOutputStream geek_out = new FileOutputStream("GEEKS.txt");  ObjectOutputStream geek_outStream = new ObjectOutputStream(geek_out);  ObjectInputStream Geek_inStream  = new ObjectInputStream(new FileInputStream("GEEKS.txt"));  geek_outStream.writeUTF("gEEKSArehERE");  geek_outStream.flush();      byte[] destination = new byte[14];    // Use of readFully()   Geek_inStream.readFully(destination);    String str = new String(destination);  System.out.println("Use of readFully(destination offset maxlen) : "+str);  } } 
  • Изход: 
Use of readFully(destination offset maxlen) : gEEKSArehERE  
  • readFully(byte[] destination int offset int maxlen) : java.io.ObjectInputStream.readFully(byte[] destination int offset int maxlen) чете някои байтове (започвайки от отместване до maxlen позиция) от източника до целевия масив.
    Синтаксис:
public void readFully(byte[] destination int offset int maxlen)  
Parameters :
destination : the buffer in which the data is to be read
offset : starting position of the buffer
maxlen : max no. of bytes to be read
Return :
void
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if End of stream is reached
Java
// Java program explaining the working of  // readFully(byte[] destination int offset int maxlen) import java.io.*; public class NewClass {  public static void main(String[] args) throws IOException ClassNotFoundException  {  // create a new file with an ObjectOutputStream and ObjectInputStream  FileOutputStream geek_out = new FileOutputStream("GEEKS.txt");  ObjectOutputStream geek_outStream = new ObjectOutputStream(geek_out);  ObjectInputStream Geek_inStream   = new ObjectInputStream(new FileInputStream("GEEKS.txt"));  geek_outStream.writeUTF("gEEKSArehERE");  geek_outStream.flush();    byte[] destination = new byte[14];    // Use of readFully(byte[] destination int offset int maxlen)   Geek_inStream.readFully(destination 3 7);    String str = new String(destination);  System.out.println("Use of readFully(destination offset maxlen) : "+ str);  } } 
  • Изход: 
Use of readFully(destination offset maxlen) : geeks  

Създаване на тест