public interface Source extends Closeable
Most applications shouldn't operate on a source directly, but rather on a
 BufferedSource which is both more efficient and more convenient. Use
 Okio.buffer(Source) to wrap any source with a buffer.
 
Sources are easy to test: just use a Buffer in your tests, and
 fill it with the data your application is to read.
 
InputStream.
 InputStream requires multiple layers when consumed data is
 heterogeneous: a DataInputStream for primitive values, a BufferedInputStream for buffering, and InputStreamReader for
 strings. This class uses BufferedSource for all of the above.
 
Source avoids the impossible-to-implement available() method. Instead callers specify
 how many bytes they require.
 
Source omits the unsafe-to-compose mark and reset state that's tracked by InputStream; instead, callers
 just buffer what they need.
 
When implementing a source, you don't need to worry about the single-byte read method that is awkward to implement efficiently and returns one of 257 possible values.
And source has a stronger skip method: BufferedSource.skip(long)
 won't return prematurely.
 
Okio.source(java.io.InputStream) to adapt an InputStream to a source. Use
 BufferedSource.inputStream() to adapt a source to an InputStream.| Modifier and Type | Method and Description | 
|---|---|
| void | close()Closes this source and releases the resources held by this source. | 
| long | read(Buffer sink,
    long byteCount)Removes at least 1, and up to  byteCountbytes from this and appends
 them tosink. | 
| Timeout | timeout()Returns the timeout for this source. | 
long read(Buffer sink, long byteCount) throws IOException
byteCount bytes from this and appends
 them to sink. Returns the number of bytes read, or -1 if this
 source is exhausted.IOExceptionTimeout timeout()
void close()
    throws IOException
close in interface AutoCloseableclose in interface CloseableIOExceptionCopyright © 2017. All rights reserved.