各位同仁:
本人初次尝试使用golang进行开发。在用go进行socket对接java服务时需要读取数据流中的各种类型。
java的java.io.DataInputStream类有各种数据读取的实现,如readInt, readFloat, readUTF等。
目前在go中同样实现相应的方法,本人尝试
var x int32
b_buf := bytes.NewBuffer(b)
c,_ := b_buf.ReadByte()
fmt.Println(c)
binary.Read(b_buf, binary.BigEndian, &x)
fmt.Println(x)
可以读取int类型的数据。但是针对readUTF这种字符串类型的数据目前还不清楚如何操作。请各位大神给予帮助。
同时本人尝试使用
b3 := make([]byte,12)
l,err:=b_buf.Read(b3)
fmt.Println(l)
fmt.Println(err)
fmt.Println(string(b3))
此方法进行字节获取转化为string输出,发现可以转化成utf8的内容,中间有不少NUL STX占位符。最重要的是要去读的字符串需要的字节长度如何确认呢??
在java中使用readUTF可以直接从流中获得字符串的内容,在golang中如何实现类似java的readUTF功能!
谢各位!!
有疑问加站长微信联系(非本文作者)