read(byte[], int, int): This method is available in the java.io.ObjectInputStream class of Java.
Syntax:
int java.io.ObjectInputStream.read(byte[] buf, int off, int len) throws IOException
This method takes three arguments. This method reads into an array of bytes. This method will block until some input is available.
Parameters: Three parameters are required for this method.
buf: the buffer into which the data is read.
off: the start offset in the destination array buf.
len: the maximum number of bytes read.
Returns: the actual number of bytes read, -1 is returned when the end ofthe stream is reached.
Throws:
1. NullPointerException - if buf is null.
2. IndexOutOfBoundsException - if off is negative, len is negative, or len is greater than buf.length - off.
3. IOException - If an I/O error has occurred.
Approach 1: When no exception
Java
import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;public class ObjectInputStreamread2 {public static void main(String[] args) throws IOException {InputStream in = new FileInputStream("D:\\hello.txt");ObjectInputStream objectInputStream = new ObjectInputStream(in);byte buf[] = { 'a', 'b', 'c', 'd', 'e' };int off = 0, len = 3;try {System.out.println(objectInputStream.read(buf, off, len));} catch (NullPointerException e) {System.out.println("NullPointerException occurs");} catch (IndexOutOfBoundsException e) {System.out.println("IndexOutOfBoundsException occurs");} catch (IOException e) {System.out.println("IOException occurs");}objectInputStream.close();}}
Output:
3
Approach 2: NullPointerException
Java
import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;public class ObjectInputStreamread2 {public static void main(String[] args) throws IOException {InputStream in = new FileInputStream("D:\\hello.txt");ObjectInputStream objectInputStream = new ObjectInputStream(in);byte buf[] = null;int off = 0, len = 3;try {System.out.println(objectInputStream.read(buf, off, len));} catch (NullPointerException e) {System.out.println("NullPointerException occurs");} catch (IndexOutOfBoundsException e) {System.out.println("IndexOutOfBoundsException occurs");} catch (IOException e) {System.out.println("IOException occurs");}objectInputStream.close();}}
Output:
NullPointerException occurs
Approach 3: IndexOutOfBoundsException
Java
import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;public class ObjectInputStreamread2 {public static void main(String[] args) throws IOException {InputStream in = new FileInputStream("D:\\hello.txt");ObjectInputStream objectInputStream = new ObjectInputStream(in);byte buf[] = { 'a', 'b', 'c', 'd', 'e' };int off = 0, len = 13;try {System.out.println(objectInputStream.read(buf, off, len));} catch (NullPointerException e) {System.out.println("NullPointerException occurs");} catch (IndexOutOfBoundsException e) {System.out.println("IndexOutOfBoundsException occurs");} catch (IOException e) {System.out.println("IOException occurs");}objectInputStream.close();}}
Output:
IndexOutOfBoundsException occurs
Some more methods of ObjectInputStream
available(): This method returns the number of bytes that can be read without blocking.
close(): This method closes the input stream. Must be called to release any resources associated with the stream.
defaultReadObject(): This method read the non-static and non-transient fields of the current class from this stream.
getObjectInputFilter(): This method returns the serialization filter for this stream.
read(): This method reads a byte of data.
readBoolean(): This method reads in a boolean.
readByte(): This method reads an 8-bit byte.
readChar(): This method reads a 16-bit char.
readDouble(): This method reads a 64-bit double.
readFields(): This method reads the persistent fields from the stream and makes them available by name.
readFloat(): This method reads a 32-bit float.
readFully(byte[]): This method reads bytes, blocking until all bytes are read.
readFully(byte[], int, int): This method reads bytes, blocking until all bytes are read.
readInt(): This method reads a 32-bit int.
readLong(): This method reads 64-bit long.
readObject(): This method read an object from the ObjectInputStream.
readShort(): This method reads a 16-bit short.
readUnshared(): This method reads an "unshared" object from the ObjectInputStream.
readUnsignedByte(): This method reads an unsigned 8-bit byte.
readUnsignedShort(): This method reads an unsigned 16-bit short.
readUTF(): This method reads a String in modified UTF-8 format.
registerValidation(ObjectInputValidation, int): This method registers an object to be validated before the graph is returned.
setObjectInputFilter(ObjectInputFilter): This method set the serialization filter for the stream.
skipBytes(int): This method skips bytes.
No comments:
Post a Comment