返回
请OKHttp把你的所有拦截器告诉我!6.CallServerInterceptor
Android
2023-11-19 08:39:52
好的,请看文章:
在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就介绍到这里了。