登录
首页 >  Golang >  Go问答

替代 Java DataOutputStream 的 Go 解决方案

来源:stackoverflow

时间:2024-03-14 13:00:35 213浏览 收藏

从现在开始,努力学习吧!本文《替代 Java DataOutputStream 的 Go 解决方案》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我有几行 java 代码

out.write(223);
out.writeBytes("something");
out.writeInt(434);

到目前为止,我似乎没有找到go中java dataoutputstream的替代品,也没有找到与.write .writebytes类似的函数。 writeint。我真的很感激一些帮助:) 另外,如果您能向我展示有关如何连接到特定 ip 和端口并向该 ip 输出字节、整数和其他数据的完整代码,那就太好了,就像 dataoutputstream 一样。


解决方案


幸运的是,Go 有一种更细粒度的方法。

Go 的 stdlib 中有 encoding/binary 包,它能够将整数数据类型格式化为二进制文件 - 包括小端字节序(就像 DataOutputStream 似乎所做的那样)和大端字节序。
encoding/binary.LittleEndian.PutUint* 方法开始。 它们将编码的字节放入切片中,然后您可以按照通常的方式编写该切片(见下文)。

Go中所有能够“摄取字节”的东西都实现了特殊的接口io.Writer;文件和 TCP 套接字也适用于此。

因此,您可以将所谓的“字节”(在 Go 中,通常使用所谓的字节切片 []byte)来操作不透明的字节块,直接写入任何实现 io.Writer 的对象。 要写入整数值,首先将其编码为字节片,然后以相同的方式写入。

字符串是一个更有趣的话题。我在 DataOutputStream 的文档中没有看到有关它如何处理字符编码的信息,所以我不知道该建议什么。
不过,您可以通过调用 io.WriteSting 辅助函数将任何 Go 字符串写入 io.Writer

关于你的

请阅读this

要开始使用,请执行以下操作:

  1. 填写 the Tour
  2. 阅读 "Effective Go"

这将使您掌握大约 90% 的必要知识。
其余可阅读the Go Blog获取;特别是这些文章:

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《替代 Java DataOutputStream 的 Go 解决方案》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>