JAVA伊奥。Java |集合1中的ObjectInputStream类

ObjectInputStream类反序列化以前由 对象输出流 .

null
  • ObjectOutputStream和ObjectInputStream都被用来存储对象的图形。
  • 它确保它所处理的对象与JVM的类(即Java虚拟机)匹配。只有这些对象才能从支持 可序列化 部化的 –IO类,否则错误。 Serializable基本上是JVM(Java虚拟机)的一种标记,指示它写出流中存在的对象的状态

宣言:

public class ObjectInputStream
  extends InputStream
    implements ObjectInput, ObjectStreamConstants

施工人员:

  • 受保护的ObjectInputStream(): 如果子类正在重新实现ObjectInputStream,请帮助它们不要分配ObjectInputStream使用的私有数据。
  • ObjectInputStream(InputStream源\输入): 创建从“源输入”输入流读取数据的ObjectInputStream。

方法:

  • read(): JAVA伊奥。ObjectInputStream。读() 在没有数据可读取的情况下读取数据字节和数据块。 语法:
    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伊奥。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 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
    
  • 读取(字节[]缓冲区,整数偏移量,整数最大值): JAVA伊奥。ObjectInputStream。读取(字节[]缓冲区,整数偏移量,整数最大值) 从缓冲区的偏移位置到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 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伊奥。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伊奥。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伊奥。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伊奥。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伊奥。ObjectInputStream。readInt() 读取32位整数。 语法:
    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伊奥。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 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伊奥。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伊奥。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 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伊奥。ObjectInputStream。readUTF() 读取修改后的UTF-8(Unicode转换格式)格式的字符串。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 program explaining the working of readUTF()
    import java.io.*;
    public clas // 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(整数最大值): JAVA伊奥。ObjectInputStream。skipBytes(整数最大值) 读取时跳过“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 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
  • 准备就绪(字节[]目的地): JAVA伊奥。ObjectInputStream。准备就绪(字节[]目的地) 读取从源阵列到目标阵列的所有字节。 语法:
    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 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
  • 准备就绪(字节[]目的地,整数偏移量,整数最大值): JAVA伊奥。ObjectInputStream。准备就绪(字节[]目的地,整数偏移量,整数最大值) 从源阵列到目标阵列读取一些字节(从偏移量到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 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

本文由 莫希特·古普塔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享