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