java - 每个固定字节长度从InputStream中提取数据?

标签 java inputstream

给定一个输入流,我想要一个可以调用 next() 的工具,当前执行会阻塞,直到流中累积了 50 个字节,此时 next() > 返回长度为 50 的 byte[],其中包含相关数据。

在 Google 上找到正确的短语非常困难,这就是我来这里的原因。

谢谢。

最佳答案

JDK 中没有这样的工具,但您可以简单地将 InputStream 包装到 DataInputStream 中。并调用readFully(byte[])关于它:

InputStream is = // ...
DataInputStream dis = new DataInputStream(is);
byte[] bytes = new byte[50];
dis.readFully(bytes);
// "bytes" now contains exactly 50 bytes from the stream

要拥有一个带有 next() 方法的类,请实现 Iterator接口(interface)并在内部执行上述操作。

关于java - 每个固定字节长度从InputStream中提取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35817251/

相关文章:

java - 理解发生在关系之前

java - 如何在服务器上处理动态变化的 JSESSIONID

java - 缩放时 Android map V2 瓦片消失

java - 如何在 Java 中模拟 System.in(除了在 Junit 测试用例中使用)?

java - 制作文件输入流时未找到文件异常?

java - 如何从自定义 Hibernate 查询填充 POJO 类?

java - 使用 Tomcat 和 MySQL 的 RuntimeException

Java 支持从大于 `Int.MAX_VALUE` 的 URL 下载数据 (Url.openConnection())

java - JAR 中 InputStream 的不同行为

java - 将文件复制到 myClass 的相对路径中