问题标签 [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 投票
5 回答
35118 浏览

java - 如何在 Java 中合并两个输入流?

在 Java 中有两个 InputStreams,有没有办法合并它们,所以你以一个 InputStream 结束,给你两个流的输出?如何?

0 投票
2 回答
5960 浏览

java - 如何从 InputStream 中获取 SelectableChannel?

我想从 java.io.InputStream 中读取超时。显然正确的方法是使用 java.nio.channels.SelectableChannel 和 java.nio.channels.Selector。不幸的是,尚不清楚如何从 InputStream 转到 SelectableChannel。

InputStream 来自非常规来源——http://java.sun.com/products/javacomm/reference/api/javax/comm/CommPort.html#getInputStream()

0 投票
5 回答
725907 浏览

java - 如何在 Java 中将字符串转换为 InputStream?

给定一个字符串:

如何将其转换为InputStream?

0 投票
7 回答
184403 浏览

java - 从类路径资源(XML 文件)获取输入流

在 Java Web 应用程序中,假设我想获取一个 XML 文件的 InputStream,该文件位于 CLASSPATH 中(即在文件夹中),我该怎么做?

0 投票
8 回答
154619 浏览

java - 是否可以从超时的 InputStream 中读取?

具体来说,问题是要写一个这样的方法:

如果数据在 'timeout' 毫秒内可用,则返回值与 in.read() 相同,否则返回 -2。在方法返回之前,任何衍生的线程都必须退出。

为了避免争论,这里的主题是 java.io.InputStream,由 Sun(任何 Java 版本)记录。请注意,这并不像看起来那么简单。以下是 Sun 文档直接支持的一些事实。

  1. in.read() 方法可能是不可中断的。

  2. 将 InputStream 包装在 Reader 或 InterruptibleChannel 中没有帮助,因为所有这些类都可以调用 InputStream 的方法。如果可以使用这些类,就可以编写一个直接在 InputStream 上执行相同逻辑的解决方案。

  3. in.available() 返回 0 总是可以接受的。

  4. in.close() 方法可能会阻塞或什么都不做。

  5. 没有一般的方法可以杀死另一个线程。

0 投票
4 回答
1700 浏览

java - ZipInputStream 不报告读取的*实际*(即压缩)字节

喜欢这个网站!我的问题如下:

我正在读取来自 HTTP“PUT”请求的网络的 zip 文件。请求标头告诉我 Content-Length 是(比如说)1Mb。以下代码创建 ZipInputStream,并将 zip 内容保存到当前目录中的文件中:

总而言之,totalBytesRead大约等于 1.5Mb(取决于文件的压缩,可能是任何东西!)。我想知道的是,是否有办法找出从原始文件中读取了多少实际字节inputStream?两者都ze.getSize()ze.getCompressedSize()每个压缩条目返回 -1(即它不知道)。我需要此信息作为进度条,以显示已从网络读取传输的 zip 文件的字节数。

建议?我是否应该将 ZipInputStream 子类化并尝试找出它从包装的 InputStream 中读取的字节数?

提前致谢!

0 投票
8 回答
83946 浏览

java - 如何从 java.lang.String 获取 java.io.InputStream?

我有一个String我想用作InputStream. 在 Java 1.0 中,您可以使用java.io.StringBufferInputStream,但这已经是@Deprecrated(有充分的理由——您不能指定字符集编码):

此类没有正确地将字符转换为字节。从 JDK 1.1 开始,从字符串创建流的首选方法是通过StringReader 类。

您可以创建一个java.io.Readerwith java.io.StringReader,但没有适配器可以使用 aReader和创建一个InputStream

我发现了一个古老的错误,要求找到合适的替代品,但据我所知,不存在这样的东西。

经常建议的解决方法是java.lang.String.getBytes()用作以下内容的输入java.io.ByteArrayInputStream

但这意味着将String内存中的整个实体化为一个字节数组,并且违背了流的目的。在大多数情况下,这没什么大不了的,但我一直在寻找能够保留流意图的东西——尽可能少的数据在内存中(重新)物化。

0 投票
6 回答
4311 浏览

java - 在Java中以一定的速率读取文件

是否有关于如何以一定速度读取长文件的文章/算法?

假设我不想在发出读取时通过 10 KB/秒。

0 投票
10 回答
44652 浏览

java - 如何缓存 InputStream 以供多次使用

我有一个文件的 InputStream,我使用 apache poi 组件来读取它,如下所示:

问题是我需要多次使用同一个流,并且 POIFSFileSystem 会在使用后关闭流。

缓存输入流中的数据然后将更多输入流提供给不同的 POIFSFileSystem 的最佳方法是什么?

编辑1:

缓存是指存储以备后用,而不是作为加速应用程序的一种方式。将输入流读入数组或字符串然后为每次使用创建输入流是否更好?

编辑2:

很抱歉重新提出问题,但在桌面和 Web 应用程序中工作时条件有所不同。首先,我从我的 tomcat Web 应用程序中的 org.apache.commons.fileupload.FileItem 获得的 InputStream 不支持标记,因此无法重置。

其次,我希望能够将文件保存在内存中,以便在处理文件时更快地访问和减少 io 问题。

0 投票
4 回答
489 浏览

c++ - HTTP 输入流类 (C++)

我目前正在开发一个项目,该项目对其需要的数据执行大量 HTTP 请求。它的工作原理是将所有数据写入缓冲区,然后将该缓冲区返回给调用者。似乎等待整个文件下载基本上可以流式传输的数据是一个坏主意。

问题 1:是否已经有一个库/公共代码可以发出 HTTP 和经过身份验证的 HTTP 请求作为流工作?

问题2:如果没有这样的库,为什么不呢?有没有理由从来不需要这样的东西?