我知道 bufio 包中的golang中的特定功能。
func (b *Reader) Peek(n int) ([]byte, error)
Peek返回下一个n个字节, 而不会使阅读器前进
。在下一个读取调用中,字节停止有效。如果Peek返回的字节数少于n个字节,则它还会返回一个错误,解释读取短的原因。如果n大于b的缓冲区大小,则错误为ErrBufferFull。
我需要能够从阅读器读取特定数量的字节,以 使阅读器更先进 。基本上,与上面的功能相同,但是它使阅读器更高级。有人知道如何做到这一点吗?
请注意,该bufio.Read
方法io.Read
最多调用一次基础,这意味着它可以返回n < len(p)
,而不会到达EOF。如果您想精确地读取len(p)
字节或由于错误而失败,则可以这样使用io.ReadFull
:
n, err := io.ReadFull(reader, p)
即使读取器已缓冲,此操作也有效。
本文向大家介绍Java缓冲读取器,包括了Java缓冲读取器的使用技巧和注意事项,需要的朋友参考一下 示例 介绍 该BufferedReader班是以外的包装Reader是有两个主要目的类: ABufferedReader为包装的提供缓冲Reader。这允许应用程序一次读取一个字符,而不会产生过多的I / O开销。 一个BufferedReader用于一次读取文本行提供的功能。 使用Buffered
问题内容: 在Golang中处理原始IP软件包时,遇到了一个问题,我似乎无法找到以下解决方案: 在IPv4的说明书中包含有大于8位小字段。例如,版本或报头长度(每个4位)或标志(3位)。 如何从io.Reader中读取这些值,然后再使用Golang处理它们?到目前为止,我一直在使用binary.Read方法,但是由于Golang中最小的整数类型是int8,因此在这种情况下是不可能的。 问题答案:
问题内容: 为了寻求帮助,我目前已编写了HTTP服务器。目前,它可以很好地处理GET请求。但是,在使用POST时,缓冲的读取器似乎挂起。当请求停止时,其余输入流将通过缓冲的读取器读取。我在Google上找到了一些东西。我尝试将CRLF和协议版本从1.1更改为1.0(浏览器会自动将请求发送为1.1),任何想法或帮助将不胜感激。谢谢 问题答案: 这不安全!但是显示了如何在初始HTTP标头之后的输入流中
问题内容: 我有一个线程可以从缓冲读取器读取字符(该读取器是从套接字创建的,如下所示): 此代码只能运行一次。例如,如果客户端连接并发送此消息:“这是一个测试”和“这是另一个测试”,则主机输出为: 请注意该程序不会收到“这是另一个测试”,因为它停留在读取流上。有什么办法在不减小缓冲区大小的情况下解决这个问题?这是线程的代码: 客户/发送者的代码(不是我的代码): 问题答案: 是一个 阻塞 调用,这
问题内容: 我正在尝试从FTP服务器读取文件。该文件是一个文件。我想知道在套接字打开的情况下是否可以对此文件执行操作。我试图按照什么分两个问题,提到的阅读文件,而不写入磁盘和读取从FTP文件,而无需下载,但没有成功。 我知道如何提取下载文件上的数据/工作,但不确定是否可以即时执行。有没有一种方法可以连接到站点,在缓冲区中获取数据,还可以提取某些数据并退出? 尝试StringIO时出现错误: 我只需
问题内容: 我试图读取就是BEING柏油,流媒体,以标准输入存档,但我不知怎么读 远远 在管道的数据超过焦油发送。 我这样运行我的命令: 源代码是这样的: 对于100MB的涂油文件夹,我将获得1468个4MB的块(即6.15GB)!此外,数组的大小似乎无关紧要:如果将块大小设置为40MB,我仍然会获得约1400个40MB数据块,这根本没有意义。 要使用Go正确读取数据,我需要做些什么吗? 问题答案