logo

Java の Java.io.ObjectInputStream クラス |セット1

ObjectInputStream クラスは、以前に書き込まれたプリミティブ データとオブジェクトを逆シリアル化します。 オブジェクト出力ストリーム

  • ObjectOutputStream と ObjectInputStream は両方とも、オブジェクトのグラフのストレージを提供するために使用されます。
  • これにより、対象となるオブジェクトが JVM (Java 仮想マシン) のクラスと一致することが保証されます。これらのオブジェクトのみをサポートするストリームから読み取ることができます。 シリアル化可能 または 外部化可能 - IO クラスがそれ以外の場合はエラーになります。 Serializable は基本的に、ストリーム内に存在するオブジェクトの状態を書き出すように指示する JVM (Java 仮想マシン) の一種のマーカーです。

宣言 : 

public class ObjectInputStream  
extends InputStream
implements ObjectInput ObjectStreamConstants

コンストラクター: 



  • 保護された ObjectInputStream() : サブクラスが ObjectInputStream を再実装する場合、ObjectInputStream によって使用されるプライベート データが割り当てられないようにします。
  • ObjectInputStream(InputStream ソース_入力) : 「source_input」入力ストリームからデータを読み取る ObjectInputStream を作成します。

方法: 

  • 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[] バッファ int offset int maxlen) : java.io.ObjectInputStream.read(byte[] バッファ int offset int maxlen) バッファのオフセット位置から 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 ビット double を読み取ります。
    構文:
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 ビット 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 ビット short を読み取ります。 構文:
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  

クイズの作成