返回

请OKHttp把你的所有拦截器告诉我!6.CallServerInterceptor

Android

好的,请看文章:



在JAVA IO中有输入流和输出流,在OKio的IO体系中,Sourc就表示输入流,Sink表示输出流。OKio的…

Source和Sink 是OKIO的核心概念。在JAVA IO中有输入流和输出流,在OKio的IO体系中,Sourc就表示输入流,Sink表示输出流。OKio的接口定义这两个对象,这两个对象都支持一些基本操作,如:流打开/关闭,数据读取/写入,定位位置,流超时等。

关于Source和Sink还可以给出更进一步的解释:

Source,它可以理解为一个管道,你可以通过它来获取一些数据。你可以将它连接到一个本地文件,也可以连接到一个远程服务器上的文件,还可以连接到一个内存对象上,或者其他任何你想要获取数据的地方。

Sink,也可以理解为一个管道,你可以将数据写入到它中。你可以将它连接到一个本地文件,也可以连接到一个远程服务器上的文件,还可以连接到一个内存对象上,或者其他任何你想要写入数据的地方。

基于这种连接上的一些管道,我们就能够更加方便地进行数据操作。

不管是Source还是Sink,它们都是指向数据的接口。那么,它们各自都能够做什么样的操作呢?它们拥有哪些方法呢?

Source 的方法

def readByte(): returns an Int?
def readBytes(sink: Buffer): returns Long
def read(buffer: ByteArray): Int
def readFully(sink: Buffer): Long
def close()
def timeout(): Timeout
def stream(): InputStream
def isClosed(): Boolean
def position(): Long
def seek(pos: Long): Long
def buffer(size: Int): Source

Sink 的方法

def writeByte(b: Byte)
def writeBytes(source: Buffer): Long
def write(source: ByteArray): Int
def writeAll(source: Source): Long
def flush(): Unit
def close(): Unit
def timeout(): Timeout
def stream(): OutputStream
def isClosed(): Boolean

Source 和 Sink 均实现了Closable接口,在使用它们的时候需要调用close方法关闭连接,释放资源。

好了,关于Source和Sink就介绍到这里了。