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