问题标签 [bytestream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2833 浏览

java - 将无符号字节流转换为有符号字节流 Golang

在 Golang 中将字节流转换为字节流切片的最佳方法是什么?目前我正在尝试在 golang 中复制一个 java 程序,我相信我遇到了一些问题,即 java 将字节流读取为有符号值,而 golang 将其视为无符号值。

当我用 Java 打印时,请注意负值是不同的。正面是一样的:

爪哇:

8| -8 | -58 |-61|-56|-113|42|16|-64|2|24|-16|1

戈朗:

8| 248 | 198 |195|200|143|42|16|192|2|2|240|1

目前,我在 GO 中的实现如下所示:

在 Java 中,实现几乎是:

我没有看到任何简单的方法可以将其快速转换为有符号的 int(也许我错了)。我可以尝试遍历整个切片,将每个值转换为有符号整数,但这种方法似乎相当混乱。它还需要我对每个进行操作。有没有更干净的方法来转换切片?

0 投票
1 回答
639 浏览

python - 为什么我的 Logstash 处理程序会抛出 TypeError?

我正在使用以下代码创建一个自定义记录器:

但是当我使用从返回的记录器时setup_custom_logger,我总是得到一个TypeError.

我尝试用logger.info('hello')和调用它logger.info(b'hello'),但在这两种情况下都得到:

'hello'日志记录不起作用是有道理的,因为'hello'它确实是一种str类型。

然而,b'hello'是一个类似字节的对象:

为什么我会收到此错误?我正在使用 python-logstash 0.4.6 和 Python 3.5.1。

0 投票
1 回答
713 浏览

c# - 如何读取流的所有字节,但最后 8 个字节

我有以下代码:

income是我需要保存到磁盘的流,问题是我想忽略最后 8 个字节并保存之前的所有内容。收入流是只读的,只能转发,所以我无法预测它的大小,并且由于发送的文件很大,我不想将所有流加载到内存中。

任何帮助将不胜感激。

0 投票
1 回答
624 浏览

c# - 为什么我的 Socket InputStream 会丢失字节?

我正在创建一个基于套接字的系统,用于在桌面设备和移动设备之间进行通信。我正在使用一个简单的协议来读取和写入数据到设备之间的流中,最终以字节的形式结束:

  1. 前 4 个字节代表一个整数,它定义了要执行的命令类型
  2. 接下来的 4 个字节代表一个整数,它是流中其余字节的长度
  3. 剩余的字节代表有效载荷数据,其总数对应于(2)的结果。

我能够成功剥离前 4 个字节并解析命令 ok,然后剥离接下来的 4 个字节并正确解析长度。当我剥离剩余的字节时,问题就出现了,其中一些字节丢失了,并且它们从剩余数据的前面丢失了。

例如; 如果命令为 1,长度为 50,则流中应该有 50 个字节,但只有 46 个字节,并且缺少 0-3 个字节。

起始数据如下:

  • 命令:1
  • 长度:50
  • 有效载荷:C:\Users\dave\Music\Offaiah-Trouble_(Club_Mix).mp3

将其转换为字节数组后,我得到:

"\u0001\0\0\02\0\0\0C:\Users\dave\Music\Offaiah-Trouble_(Club_Mix).mp3"

(问题 - 为什么第一个整数在它前面得到 \u000 而第二个没有?)

这是我用来解析它的一些代码片段:

此时的inbuffer包含:“\u0001\0\0\0”,BitConverter将其解析为1

入缓冲区现在包含:“2\0\0\0”,BitConverter 将其解析为“50”

缓冲区现在包含:“sers\dave\Music\Offaiah-Trouble_(Club_Mix).mp3”

前面缺少的“C:\U”去哪儿了?

0 投票
1 回答
246 浏览

ocaml - OCaml 字节到 Bigarray

我有一个 C 程序,它在内存中有一个数组doubleint. C 程序使用 ZeroMQ 将相应的二进制数据发送到 OCaml 程序。OCaml 程序接收到一些bytes,现在我想将它们bytes转换成一个Array of int或一个Array of float. 我怎样才能做到这一点?

0 投票
3 回答
874 浏览

haskell - Haskell 中字节流的高效流式传输和操作

在为大型(<bloblength><blob>)*编码二进制文件编写反序列化器时,我遇到了各种 Haskell 生产-转换-消费库。到目前为止,我知道四个流媒体库:

这是一个精简的示例,说明当我尝试Word32使用conduit. 一个更现实的例子是首先读取Word32确定 blob 长度的 a,然后产生ByteString该长度的惰性值(然后进一步反序列化)。但在这里我只是尝试从二进制文件中以流方式提取 Word32:

程序的输出只是读取的 Word32 的数量。事实证明,流在读取第一个块(大约 32KiB)后终止。由于某种原因mbs是 never Nothing,所以我必须检查null bs当块被消耗时哪个停止流。很明显,我的导管transform有问题。我看到了解决方案的两条途径:

  1. await不想去 的第二块,ByteStream那么还有另一个函数可以拉下一个块吗?在我见过的示例中(例如 Conduit 101),这不是它的完成方式
  2. 这只是错误的设置方式transform

这是如何正确完成的?这是正确的方法吗?(性能确实很重要。)

更新:这是一种不好的方法Systems.IO.Streams

'Bad' 表示:对时间和空间要求很高,不处理 Decode 异常。

0 投票
1 回答
257 浏览

go - 如何在 Go 编程语言中实现一个练习

练习 7.5:包中
LimitReader函数io接受一个io.Reader r和一个字节数n,并返回另一个从字节Reader读取r但在n字节后报告文件结束条件的函数。实施它。

如何实施?


下面是我的代码,我知道它不对。

0 投票
0 回答
80 浏览

java - 如何检查字节流是否包含偶数?

我是 Java 新手,我需要创建一个方法来检查字节流是否包含偶数。我已经写了一些代码,但我认为它很可怕,并且不知道如何测试它。在我看来,有一些简短而有效的方法可以进行检查......

0 投票
1 回答
842 浏览

c# - 是否可以每次读取一定数量的文件?

在 C# 中,每次执行读取时是否可以从文件中仅读取一定数量的数据字节?它将完成与下面的 python 代码行相同的事情

其中 1024 是它读取的字节数。

data 会从文件中返回一个包含 1024 字节文本的字符串。

C# 有什么东西可以完成同样的事情吗?

0 投票
2 回答
1906 浏览

python - 显示存储在 MongoDB 中的 PNG 二进制文件的图像

我有一个看起来像这样的 mongodb 集合:

屏幕截图是二进制格式,我想显示它。我将如何在 python 中执行此操作?

我已经使用 pymongo 建立了与数据库的连接,但我不知道如何解码字节流。请记住,我没有创建这个数据库,我只能访问它。