如何在OKHttp的BufferedSink(或BufferedSource)中实现seek()函数?
How to implement seek() function in BufferedSink (or BufferedSource) in OKHttp?
如何在OKHttp的BufferSink(或BufferedSource)中实现seek()函数?
我们都知道在Java中,RandomAccessFileclass有一个方法seek(long),可以让我们从特定位置开始reading/writing一个文件,并且该位置之前的字节将被丢弃。 OKHttp中有没有类似的方法?
我注意到BufferedSink中有一个方法:
write(byteString: ByteString, offset: Int, byteCount: Int)
可惜参数offset只接受int类型,不接受long类型,在传输大文件时有一定的限制。
我正在使用 Okio.buffer 从资产文件夹中读取图像文件,如下所示:
BufferedSource img = Okio.buffer(Okio.source(getAssets().open("image.jpg")));
byte[] image = img.readByteArray();
您要查找的API是BufferedSource.skip()
。
在 Okio 3.0(即将推出)中,我们添加了一个新的 Cursor
class,如果基础源是 File
,这将使 skip()
更快。
如何在OKHttp的BufferSink(或BufferedSource)中实现seek()函数?
我们都知道在Java中,RandomAccessFileclass有一个方法seek(long),可以让我们从特定位置开始reading/writing一个文件,并且该位置之前的字节将被丢弃。 OKHttp中有没有类似的方法?
我注意到BufferedSink中有一个方法:
write(byteString: ByteString, offset: Int, byteCount: Int)
可惜参数offset只接受int类型,不接受long类型,在传输大文件时有一定的限制。
我正在使用 Okio.buffer 从资产文件夹中读取图像文件,如下所示:
BufferedSource img = Okio.buffer(Okio.source(getAssets().open("image.jpg")));
byte[] image = img.readByteArray();
您要查找的API是BufferedSource.skip()
。
在 Okio 3.0(即将推出)中,我们添加了一个新的 Cursor
class,如果基础源是 File
,这将使 skip()
更快。