001: /*
002: * @(#)ObjectInput.java 1.23 06/10/10
003: *
004: * Copyright 1990-2006 Sun Microsystems, Inc. All Rights Reserved.
005: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
006: *
007: * This program is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License version
009: * 2 only, as published by the Free Software Foundation.
010: *
011: * This program is distributed in the hope that it will be useful, but
012: * WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * General Public License version 2 for more details (a copy is
015: * included at /legal/license.txt).
016: *
017: * You should have received a copy of the GNU General Public License
018: * version 2 along with this work; if not, write to the Free Software
019: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA
021: *
022: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
023: * Clara, CA 95054 or visit www.sun.com if you need additional
024: * information or have any questions.
025: *
026: */
027:
028: package java.io;
029:
030: /**
031: * ObjectInput extends the DataInput interface to include the reading of
032: * objects. DataInput includes methods for the input of primitive types,
033: * ObjectInput extends that interface to include objects, arrays, and Strings.
034: *
035: * @author unascribed
036: * @version 1.16, 02/02/00
037: * @see java.io.InputStream
038: * @see java.io.ObjectOutputStream
039: * @see java.io.ObjectInputStream
040: * @since JDK1.1
041: */
042: public interface ObjectInput extends DataInput {
043: /**
044: * Read and return an object. The class that implements this interface
045: * defines where the object is "read" from.
046: *
047: * @return the object read from the stream
048: * @exception java.lang.ClassNotFoundException If the class of a serialized
049: * object cannot be found.
050: * @exception IOException If any of the usual Input/Output
051: * related exceptions occur.
052: */
053: public Object readObject() throws ClassNotFoundException,
054: IOException;
055:
056: /**
057: * Reads a byte of data. This method will block if no input is
058: * available.
059: * @return the byte read, or -1 if the end of the
060: * stream is reached.
061: * @exception IOException If an I/O error has occurred.
062: */
063: public int read() throws IOException;
064:
065: /**
066: * Reads into an array of bytes. This method will
067: * block until some input is available.
068: * @param b the buffer into which the data is read
069: * @return the actual number of bytes read, -1 is
070: * returned when the end of the stream is reached.
071: * @exception IOException If an I/O error has occurred.
072: */
073: public int read(byte b[]) throws IOException;
074:
075: /**
076: * Reads into an array of bytes. This method will
077: * block until some input is available.
078: * @param b the buffer into which the data is read
079: * @param off the start offset of the data
080: * @param len the maximum number of bytes read
081: * @return the actual number of bytes read, -1 is
082: * returned when the end of the stream is reached.
083: * @exception IOException If an I/O error has occurred.
084: */
085: public int read(byte b[], int off, int len) throws IOException;
086:
087: /**
088: * Skips n bytes of input.
089: * @param n the number of bytes to be skipped
090: * @return the actual number of bytes skipped.
091: * @exception IOException If an I/O error has occurred.
092: */
093: public long skip(long n) throws IOException;
094:
095: /**
096: * Returns the number of bytes that can be read
097: * without blocking.
098: * @return the number of available bytes.
099: * @exception IOException If an I/O error has occurred.
100: */
101: public int available() throws IOException;
102:
103: /**
104: * Closes the input stream. Must be called
105: * to release any resources associated with
106: * the stream.
107: * @exception IOException If an I/O error has occurred.
108: */
109: public void close() throws IOException;
110: }
|