/* * Written by Dawid Kurzyniec and released to the public domain, as explained * at http://creativecommons.org/licenses/publicdomain */ package edu.emory.mathcs.util.io; import java.io.*; /** * An abstraction of a plain input stream. Subinterfaces supply additional * methods, indicating additional properties of the stream such as read * with timeout or redirectability. * * @see InputStream * * @author Dawid Kurzyniec * @version 1.0 */ public interface Input { int read() throws IOException; int read(byte[] buf) throws IOException; int read(byte[] buf, int off, int len) throws IOException; int available() throws IOException; long skip(long n) throws IOException; void close() throws IOException; boolean markSupported(); void reset() throws IOException; void mark(int readLimit); }