001: /*
002: Copyright (c) 2006, Matthew Estes
003: All rights reserved.
004:
005: Redistribution and use in source and binary forms, with or without
006: modification, are permitted provided that the following conditions are met:
007:
008: * Redistributions of source code must retain the above copyright
009: notice, this list of conditions and the following disclaimer.
010: * Redistributions in binary form must reproduce the above copyright
011: notice, this list of conditions and the following disclaimer in the
012: documentation and/or other materials provided with the distribution.
013: * Neither the name of Metanotion Software nor the names of its
014: contributors may be used to endorse or promote products derived from this
015: software without specific prior written permission.
016:
017: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
018: IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
019: THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
020: PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
021: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
022: EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
023: PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
024: PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
025: LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
026: NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
027: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
028: */
029: package net.metanotion.io;
030:
031: import java.io.IOException;
032:
033: public interface RandomAccessInterface {
034: public long getFilePointer() throws IOException;
035:
036: public long length() throws IOException;
037:
038: public int read() throws IOException;
039:
040: public int read(byte[] b) throws IOException;
041:
042: public int read(byte[] b, int off, int len) throws IOException;
043:
044: public void seek(long pos) throws IOException;
045:
046: public void setLength(long newLength) throws IOException;
047:
048: // Closeable Methods
049: public void close() throws IOException;
050:
051: // DataInput Methods
052: public boolean readBoolean() throws IOException;
053:
054: public byte readByte() throws IOException;
055:
056: public char readChar() throws IOException;
057:
058: public double readDouble() throws IOException;
059:
060: public float readFloat() throws IOException;
061:
062: public void readFully(byte[] b) throws IOException;
063:
064: public void readFully(byte[] b, int off, int len)
065: throws IOException;
066:
067: public int readInt() throws IOException;
068:
069: public String readLine() throws IOException;
070:
071: public long readLong() throws IOException;
072:
073: public short readShort() throws IOException;
074:
075: public int readUnsignedByte() throws IOException;
076:
077: public int readUnsignedShort() throws IOException;
078:
079: public String readUTF() throws IOException;
080:
081: public int skipBytes(int n) throws IOException;
082:
083: // DataOutput Methods
084: public void write(int b) throws IOException;
085:
086: public void write(byte[] b) throws IOException;
087:
088: public void write(byte[] b, int off, int len) throws IOException;
089:
090: public void writeBoolean(boolean v) throws IOException;
091:
092: public void writeByte(int v) throws IOException;
093:
094: public void writeShort(int v) throws IOException;
095:
096: public void writeChar(int v) throws IOException;
097:
098: public void writeInt(int v) throws IOException;
099:
100: public void writeLong(long v) throws IOException;
101:
102: public void writeFloat(float v) throws IOException;
103:
104: public void writeDouble(double v) throws IOException;
105:
106: public void writeBytes(String s) throws IOException;
107:
108: public void writeChars(String s) throws IOException;
109:
110: public void writeUTF(String str) throws IOException;
111: }
|