问题标签 [inputstream]

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 投票
4 回答
1474 浏览

java - 解析可变长度消息

我正在通过这个规范使用 Java 实现 BitTorent 协议。在消息部分中,所有消息都是固定长度的,除了其中 2 个;对于其中一个,这是握手后唯一的可变消息,因此我可以检查其他消息,并在没有其他消息遇到时假设它是一条消息。但是对于以下消息

位域消息只能在握手序列完成后立即发送,并且在发送任何其他消息之前。它是可选的,如果客户端没有片段则不需要发送。

位域消息是可变长度的,其中 X 是位域的长度。有效负载是一个位域,表示已成功下载的片段。第一个字节中的高位对应于片段索引 0。清除的位表示丢失的片段,设置的位表示有效且可用的片段。最后的备用位设置为零。

错误长度的位域被视为错误。如果客户端收到大小不正确的位域,或者位域设置了任何备用位,则客户端应断开连接。

如果我不知道长度,我无法想出解析它的方法;我应该如何在字节流中定位 id ?

编辑:在位域消息的有效负载中是 0 或 1,用于 torrent 文件中的每个片段,消息的长度将根据 torrent 内容的大小而变化。所以我不认为我可以假设件数总是适合 5 字节数。

0 投票
3 回答
5574 浏览

java - 是否可以将 Process stdout InputStream 读入 NIO ByteBuffer?

是否可以使用 NIO 处理来自 Process 的标准输出?我让它与 java.io 一起工作,但这是一个练习,可以更多地了解 NIO 并探索性能改进的可能性。

基本上,我想尽可能快地将大量文本从标准输出流式传输到缓冲区而不会阻塞,然后稍后处理该缓冲区的内容。问题是,我似乎无法找出正确的巫术来使它与 NIO 一起工作。这就是我现在的位置:

StreamConsumer 类如下所示:

0 投票
3 回答
1245 浏览

java - 在 Java 中重复 Unix 命令

有没有办法ps在 Java 中定期运行 Unix 命令(在我的情况下)?我写的循环:

不起作用。它第一次运行得很好,但此后每次输入流都有 0 个字节可用。我会尝试这个watch命令,但是这个 Solaris 盒子没有那个。我不能使用 cron 作业,因为我需要知道 PID 是否存在于 Java 应用程序中。有任何想法吗?

提前致谢。

编辑:不能使用 cron 作业

编辑:结束后我正在制作一个新Thread的相同类型(PS),所以我肯定每次都在制作一个新的 ProcessBuilder。

编辑:我把没有工作的循环放回去了,因为它引起了混乱。

0 投票
12 回答
567186 浏览

c# - 如何在 C# 中将 Stream 转换为 byte[]?

有没有一种简单的方法或方法可以在 C# 中将a 转换Stream为 a ?byte[]

0 投票
12 回答
251094 浏览

java - 确定 InputStream 的大小

我目前的情况是:我必须读取一个文件并将内容放入InputStream. 之后我需要InputStreamInputStream. 有任何想法吗?

根据要求,我将显示我从上传的文件创建的输入流

请求是一个HttpServletRequest对象,类似于Apache Commons FileUpload 包FileItemFactoryServletFileUpload

0 投票
4 回答
1695 浏览

java - java:d​​atainputstream:读取调用在等待数据时是否占用处理器时间?

如果我在 DataInputStream 上调用 read(),它会占用 CPU 周期等待数据,还是会产生当前线程并被数据已到达的中断信号唤醒?

我的动机是确定流阅读器是否需要在自己的线程中。占用 CPU 时间的阻塞读取并不理想,因为这会挂起主线程。

相关问题:当​​方法被描述为阻塞时,是否暗示线程在等待时让步?还是没有合同/保证?在我看来,一种不断检查/轮询数据的方法仍然会阻塞。

0 投票
3 回答
902 浏览

java - 将网页内容读入 Java 字符串的最佳方法是什么?

我有以下 Java 代码来获取给定 URL 处 HTML 页面的全部内容。这可以以更有效的方式完成吗?欢迎任何改进。

我不禁觉得线路阅读不是最佳的。我知道我可能掩盖了电话MalformedURLException引起的问题openConnection,我对此没有意见。

我的函数还具有使 HTML 字符串具有当前系统的正确行终止符的副作用。这不是要求。

我意识到网络 IO 可能会使读取 HTML 所需的时间相形见绌,但我仍然想知道这是最优的。

附带说明:如果StringBuilder有一个 open 的构造函数,InputStream它会简单地获取所有内容InputStream并将其读入StringBuilder.

0 投票
5 回答
104395 浏览

java - 从 OutputStream 创建 InputStream 的最有效方法

此页面:http ://blog.ostermiller.org/convert-java-outputstream-inputstream 描述了如何从 OutputStream 创建 InputStream:

其他替代方法是使用 PipedStreams 和繁琐的新线程。

我不喜欢将许多兆字节复制到新的内存字节数组的想法。有没有一个图书馆可以更有效地做到这一点?

编辑:

根据 Laurence Gonsalves 的建议,我尝试了 PipedStreams,结果证明它们并不难处理。这是clojure中的示例代码:

0 投票
2 回答
1437 浏览

java - InputStream 读取不读取数据

我在从 java 输入流中读取时遇到问题。我有一个大小为 1024 的缓冲区和一个大小为 29k-31k 的输入流。我在循环中读取了 inputStream ,但第一次读取时只得到 29 个字节,第二次读取时只得到 39 个字节,之后什么也没有。不同的 InputStream 重复相同的行为。(我正在将数据写入输出流,但我看不出这会如何影响第一次读取)

我错过了什么?

任何帮助表示赞赏:)

0 投票
33 回答
1080110 浏览

java - 在 Java 中将 InputStream 转换为字节数组

如何将整个读InputStream入字节数组?