ByteString参数到底做什么?



我想用okhttp websocket上传一些最大30 MB的文件到我的服务器。websocket传输只允许String或ByteString。所以我想把我的文件转换成字节字符串,然后通过websocket(Nodejs)上传到我的服务器。

我使用ByteString.of()像这样转换这个byteArray。

val file = "../tmp/file.jpg"
try {
val encoded:ByteArray = Files.readAllBytes(Paths.get(file))
val byteString = ByteString.of(encoded,0,1024)
..send data
Log.d("log1","DATA DONE")
} catch (e: IOException) {
Log.d("log1","ERROR:"+e)
}

但是让我困惑的是ByteString函数需要3个参数。第一:中ByteArray第二:抵消第三:Bytecount

我的问题是最后两个参数是做什么的,背后的原因是什么?我找不到任何关于这方面的明确文件。只是它添加的路线图。

如果你有任何链接或建议,请告诉我。

-Offset就是你想要开始读取字节的地方。假设一个文本文件具有以下数据

计算机科学世界量子计算

现在第一行的偏移量是0 <0,Computer Science World>第二行偏移量为<23,量子计算>

-ByteCount是要计数的字节数(包括)

让我们用一段简单的代码来帮助你

byte[] bytes1 = "Hello, World!".getBytes(Charsets.UTF_8);
ByteString byteString = ByteString.of(bytes1, 2, 9);
// Verify that the bytes were copied out.
Sytem.out.print(byteString.utf8());
回答是<<p>/strong>: hello, world

基本上,method可以用作子字符串。但是由于您想要发送所有字节,您可以简单地使用

fun of(vararg data: Byte): ByteString

最新更新