1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.io; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 21e0cf017e333b2c529d9bd7d4ad5492f0118d773eElliott Hughes * Defines an interface for classes that are able to read big-endian typed data from some 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * source. Typically, this data has been written by a class which implements 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@link DataOutput}. Types that can be read include byte, 16-bit short, 32-bit 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * int, 32-bit float, 64-bit long, 64-bit double, byte strings, and MUTF-8 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * strings. 26f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <h3>MUTF-8 (Modified UTF-8) Encoding</h3> 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * When encoding strings as UTF, implementations of {@code DataInput} and 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code DataOutput} use a slightly modified form of UTF-8, hereafter referred 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * to as MUTF-8. This form is identical to standard UTF-8, except: 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <ul> 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <li>Only the one-, two-, and three-byte encodings are used.</li> 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <li>Code points in the range <code>U+10000</code> … 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>U+10ffff</code> are encoded as a surrogate pair, each of which is 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * represented as a three-byte encoded value.</li> 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <li>The code point <code>U+0000</code> is encoded in two-byte form.</li> 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </ul> 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Please refer to <a href="http://unicode.org">The Unicode Standard</a> for 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * further information about character encoding. MUTF-8 is actually closer to 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the (relatively less well-known) encoding <a 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * href="http://www.unicode.org/reports/tr26/">CESU-8</a> than to UTF-8 per se. 44f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataInputStream 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see RandomAccessFile 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic interface DataInput { 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Reads a boolean. 51f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next boolean value. 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeBoolean(boolean) 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract boolean readBoolean() throws IOException; 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Reads an 8-bit byte value. 63f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next byte value. 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeByte(int) 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract byte readByte() throws IOException; 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 74e0cf017e333b2c529d9bd7d4ad5492f0118d773eElliott Hughes * Reads a big-endian 16-bit character value. 75f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next char value. 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeChar(int) 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract char readChar() throws IOException; 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 86e0cf017e333b2c529d9bd7d4ad5492f0118d773eElliott Hughes * Reads a big-endian 64-bit double value. 87f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next double value. 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeDouble(double) 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract double readDouble() throws IOException; 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 98e0cf017e333b2c529d9bd7d4ad5492f0118d773eElliott Hughes * Reads a big-endian 32-bit float value. 99f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next float value. 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeFloat(float) 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract float readFloat() throws IOException; 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1100eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * Equivalent to {@code readFully(dst, 0, dst.length);}. 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1120eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes public abstract void readFully(byte[] dst) throws IOException; 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1150eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * Reads {@code byteCount} bytes from this stream and stores them in the byte 1160eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * array {@code dst} starting at {@code offset}. If {@code byteCount} is zero, then this 1170eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * method returns without reading any bytes. Otherwise, this method blocks until 1180eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * {@code byteCount} bytes have been read. If insufficient bytes are available, 1190eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * {@code EOFException} is thrown. If an I/O error occurs, {@code IOException} is 1200eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * thrown. When an exception is thrown, some bytes may have been consumed from the stream 1210eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * and written into the array. 122f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 1230eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * @param dst 1240eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * the byte array into which the data is read. 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param offset 1260eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * the offset in {@code dst} at which to store the bytes. 1270eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * @param byteCount 1280eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * the number of bytes to read. 1290eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * @throws EOFException 1300eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * if the end of the source stream is reached before enough 1310eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * bytes have been read. 1320eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * @throws IndexOutOfBoundsException 1330eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * if {@code offset < 0} or {@code byteCount < 0}, or 1340eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * {@code offset + byteCount > dst.length}. 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 1360eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * if a problem occurs while reading from this stream. 1370eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * @throws NullPointerException 1380eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes * if {@code dst} is null. 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1400eb70e31581a977afa5df3292d1c96e42e548821Elliott Hughes public abstract void readFully(byte[] dst, int offset, int byteCount) throws IOException; 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 143e0cf017e333b2c529d9bd7d4ad5492f0118d773eElliott Hughes * Reads a big-endian 32-bit integer value. 144f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next int value. 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeInt(int) 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract int readInt() throws IOException; 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a string containing the next line of text available from this 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * stream. A line is made of zero or more characters followed by {@code 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * '\n'}, {@code '\r'}, {@code "\r\n"} or the end of the stream. The string 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * does not include the newline sequence. 159f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the contents of the line or null if no characters have been read 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * before the end of the stream. 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract String readLine() throws IOException; 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 170e0cf017e333b2c529d9bd7d4ad5492f0118d773eElliott Hughes * Reads a big-endian 64-bit long value. 171f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next long value. 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeLong(long) 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract long readLong() throws IOException; 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 182e0cf017e333b2c529d9bd7d4ad5492f0118d773eElliott Hughes * Reads a big-endian 16-bit short value. 183f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next short value. 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeShort(int) 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract short readShort() throws IOException; 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Reads an unsigned 8-bit byte value and returns it as an int. 195f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next unsigned byte value. 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeByte(int) 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract int readUnsignedByte() throws IOException; 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 206e0cf017e333b2c529d9bd7d4ad5492f0118d773eElliott Hughes * Reads a big-endian 16-bit unsigned short value and returns it as an int. 207f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next unsigned short value. 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeShort(int) 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract int readUnsignedShort() throws IOException; 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Reads a string encoded with {@link DataInput modified UTF-8}. 219f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next string encoded with {@link DataInput modified UTF-8}. 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws EOFException if the end of the input is reached before the read 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * request can be satisfied. 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if an I/O error occurs while reading. 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see DataOutput#writeUTF(java.lang.String) 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract String readUTF() throws IOException; 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Skips {@code count} number of bytes. This method will not throw an 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@link EOFException} if the end of the input is reached before 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code count} bytes where skipped. 233f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param count 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the number of bytes to skip. 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the number of bytes actually skipped. 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IOException 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if a problem occurs during skipping. 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract int skipBytes(int count) throws IOException; 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 242