View Javadoc
1   /*
2    * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  package java.io;
27  
28  /**
29   * ObjectInput extends the DataInput interface to include the reading of
30   * objects. DataInput includes methods for the input of primitive types,
31   * ObjectInput extends that interface to include objects, arrays, and Strings.
32   *
33   * @author  unascribed
34   * @see java.io.InputStream
35   * @see java.io.ObjectOutputStream
36   * @see java.io.ObjectInputStream
37   * @since   JDK1.1
38   */
39  public interface ObjectInput extends DataInput, AutoCloseable {
40      /**
41       * Read and return an object. The class that implements this interface
42       * defines where the object is "read" from.
43       *
44       * @return the object read from the stream
45       * @exception java.lang.ClassNotFoundException If the class of a serialized
46       *      object cannot be found.
47       * @exception IOException If any of the usual Input/Output
48       * related exceptions occur.
49       */
50      public Object readObject()
51          throws ClassNotFoundException, IOException;
52  
53      /**
54       * Reads a byte of data. This method will block if no input is
55       * available.
56       * @return  the byte read, or -1 if the end of the
57       *          stream is reached.
58       * @exception IOException If an I/O error has occurred.
59       */
60      public int read() throws IOException;
61  
62      /**
63       * Reads into an array of bytes.  This method will
64       * block until some input is available.
65       * @param b the buffer into which the data is read
66       * @return  the actual number of bytes read, -1 is
67       *          returned when the end of the stream is reached.
68       * @exception IOException If an I/O error has occurred.
69       */
70      public int read(byte b[]) throws IOException;
71  
72      /**
73       * Reads into an array of bytes.  This method will
74       * block until some input is available.
75       * @param b the buffer into which the data is read
76       * @param off the start offset of the data
77       * @param len the maximum number of bytes read
78       * @return  the actual number of bytes read, -1 is
79       *          returned when the end of the stream is reached.
80       * @exception IOException If an I/O error has occurred.
81       */
82      public int read(byte b[], int off, int len) throws IOException;
83  
84      /**
85       * Skips n bytes of input.
86       * @param n the number of bytes to be skipped
87       * @return  the actual number of bytes skipped.
88       * @exception IOException If an I/O error has occurred.
89       */
90      public long skip(long n) throws IOException;
91  
92      /**
93       * Returns the number of bytes that can be read
94       * without blocking.
95       * @return the number of available bytes.
96       * @exception IOException If an I/O error has occurred.
97       */
98      public int available() throws IOException;
99  
100     /**
101      * Closes the input stream. Must be called
102      * to release any resources associated with
103      * the stream.
104      * @exception IOException If an I/O error has occurred.
105      */
106     public void close() throws IOException;
107 }