Класът 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()Java
Parameters :
-----------
Return :
reads in a boolean.
Exception :
-> IOException : in case of any IO error occurs.
-> EOFException : if end of the stream is reached.
// 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)Java
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 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()Java
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 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()Java
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 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()Java
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 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)Java
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 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)Java
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 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)Java
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 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
Създаване на тест