问题标签 [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.
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(也许我错了)。我可以尝试遍历整个切片,将每个值转换为有符号整数,但这种方法似乎相当混乱。它还需要我对每个进行操作。有没有更干净的方法来转换切片?
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。
c# - 如何读取流的所有字节,但最后 8 个字节
我有以下代码:
income
是我需要保存到磁盘的流,问题是我想忽略最后 8 个字节并保存之前的所有内容。收入流是只读的,只能转发,所以我无法预测它的大小,并且由于发送的文件很大,我不想将所有流加载到内存中。
任何帮助将不胜感激。
c# - 为什么我的 Socket InputStream 会丢失字节?
我正在创建一个基于套接字的系统,用于在桌面设备和移动设备之间进行通信。我正在使用一个简单的协议来读取和写入数据到设备之间的流中,最终以字节的形式结束:
- 前 4 个字节代表一个整数,它定义了要执行的命令类型
- 接下来的 4 个字节代表一个整数,它是流中其余字节的长度
- 剩余的字节代表有效载荷数据,其总数对应于(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”去哪儿了?
ocaml - OCaml 字节到 Bigarray
我有一个 C 程序,它在内存中有一个数组double
或int
. C 程序使用 ZeroMQ 将相应的二进制数据发送到 OCaml 程序。OCaml 程序接收到一些bytes
,现在我想将它们bytes
转换成一个Array of int
或一个Array of float
. 我怎样才能做到这一点?
haskell - Haskell 中字节流的高效流式传输和操作
在为大型(<bloblength><blob>)*
编码二进制文件编写反序列化器时,我遇到了各种 Haskell 生产-转换-消费库。到目前为止,我知道四个流媒体库:
- Data.Conduit:广泛使用,有非常细心的资源管理
- 管道:类似于
conduit
(Haskell Cast #6conduit
很好地揭示了和之间的区别pipes
) - Data.Binary.Get:提供有用的功能,例如 getWord32be,但流式传输的示例很尴尬
- System.IO.Streams:似乎是最容易使用的一种
这是一个精简的示例,说明当我尝试Word32
使用conduit
. 一个更现实的例子是首先读取Word32
确定 blob 长度的 a,然后产生ByteString
该长度的惰性值(然后进一步反序列化)。但在这里我只是尝试从二进制文件中以流方式提取 Word32:
程序的输出只是读取的 Word32 的数量。事实证明,流在读取第一个块(大约 32KiB)后终止。由于某种原因mbs
是 never Nothing
,所以我必须检查null bs
当块被消耗时哪个停止流。很明显,我的导管transform
有问题。我看到了解决方案的两条途径:
await
不想去 的第二块,ByteStream
那么还有另一个函数可以拉下一个块吗?在我见过的示例中(例如 Conduit 101),这不是它的完成方式- 这只是错误的设置方式
transform
。
这是如何正确完成的?这是正确的方法吗?(性能确实很重要。)
更新:这是一种不好的方法Systems.IO.Streams
:
'Bad' 表示:对时间和空间要求很高,不处理 Decode 异常。
go - 如何在 Go 编程语言中实现一个练习
练习 7.5:包中
的LimitReader
函数io
接受一个io.Reader
r
和一个字节数n
,并返回另一个从字节Reader
读取r
但在n
字节后报告文件结束条件的函数。实施它。
如何实施?
下面是我的代码,我知道它不对。
java - 如何检查字节流是否包含偶数?
我是 Java 新手,我需要创建一个方法来检查字节流是否包含偶数。我已经写了一些代码,但我认为它很可怕,并且不知道如何测试它。在我看来,有一些简短而有效的方法可以进行检查......
c# - 是否可以每次读取一定数量的文件?
在 C# 中,每次执行读取时是否可以从文件中仅读取一定数量的数据字节?它将完成与下面的 python 代码行相同的事情
其中 1024 是它读取的字节数。
data 会从文件中返回一个包含 1024 字节文本的字符串。
C# 有什么东西可以完成同样的事情吗?
python - 显示存储在 MongoDB 中的 PNG 二进制文件的图像
我有一个看起来像这样的 mongodb 集合:
屏幕截图是二进制格式,我想显示它。我将如何在 python 中执行此操作?
我已经使用 pymongo 建立了与数据库的连接,但我不知道如何解码字节流。请记住,我没有创建这个数据库,我只能访问它。