问题标签 [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.
java - 如何在 Java 中合并两个输入流?
在 Java 中有两个 InputStreams,有没有办法合并它们,所以你以一个 InputStream 结束,给你两个流的输出?如何?
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()
java - 如何在 Java 中将字符串转换为 InputStream?
给定一个字符串:
如何将其转换为InputStream
?
java - 从类路径资源(XML 文件)获取输入流
在 Java Web 应用程序中,假设我想获取一个 XML 文件的 InputStream,该文件位于 CLASSPATH 中(即在源文件夹中),我该怎么做?
java - 是否可以从超时的 InputStream 中读取?
具体来说,问题是要写一个这样的方法:
如果数据在 'timeout' 毫秒内可用,则返回值与 in.read() 相同,否则返回 -2。在方法返回之前,任何衍生的线程都必须退出。
为了避免争论,这里的主题是 java.io.InputStream,由 Sun(任何 Java 版本)记录。请注意,这并不像看起来那么简单。以下是 Sun 文档直接支持的一些事实。
in.read() 方法可能是不可中断的。
将 InputStream 包装在 Reader 或 InterruptibleChannel 中没有帮助,因为所有这些类都可以调用 InputStream 的方法。如果可以使用这些类,就可以编写一个直接在 InputStream 上执行相同逻辑的解决方案。
in.available() 返回 0 总是可以接受的。
in.close() 方法可能会阻塞或什么都不做。
没有一般的方法可以杀死另一个线程。
java - ZipInputStream 不报告读取的*实际*(即压缩)字节
喜欢这个网站!我的问题如下:
我正在读取来自 HTTP“PUT”请求的网络的 zip 文件。请求标头告诉我 Content-Length 是(比如说)1Mb。以下代码创建 ZipInputStream,并将 zip 内容保存到当前目录中的文件中:
总而言之,totalBytesRead
大约等于 1.5Mb(取决于文件的压缩,可能是任何东西!)。我想知道的是,是否有办法找出从原始文件中读取了多少实际字节inputStream
?两者都ze.getSize()
为ze.getCompressedSize()
每个压缩条目返回 -1(即它不知道)。我需要此信息作为进度条,以显示已从网络读取传输的 zip 文件的字节数。
建议?我是否应该将 ZipInputStream 子类化并尝试找出它从包装的 InputStream 中读取的字节数?
提前致谢!
java - 如何从 java.lang.String 获取 java.io.InputStream?
我有一个String
我想用作InputStream
. 在 Java 1.0 中,您可以使用java.io.StringBufferInputStream
,但这已经是@Deprecrated
(有充分的理由——您不能指定字符集编码):
此类没有正确地将字符转换为字节。从 JDK 1.1 开始,从字符串创建流的首选方法是通过
StringReader
类。
您可以创建一个java.io.Reader
with java.io.StringReader
,但没有适配器可以使用 aReader
和创建一个InputStream
。
我发现了一个古老的错误,要求找到合适的替代品,但据我所知,不存在这样的东西。
经常建议的解决方法是java.lang.String.getBytes()
用作以下内容的输入java.io.ByteArrayInputStream
:
但这意味着将String
内存中的整个实体化为一个字节数组,并且违背了流的目的。在大多数情况下,这没什么大不了的,但我一直在寻找能够保留流意图的东西——尽可能少的数据在内存中(重新)物化。
java - 在Java中以一定的速率读取文件
是否有关于如何以一定速度读取长文件的文章/算法?
假设我不想在发出读取时通过 10 KB/秒。
java - 如何缓存 InputStream 以供多次使用
我有一个文件的 InputStream,我使用 apache poi 组件来读取它,如下所示:
问题是我需要多次使用同一个流,并且 POIFSFileSystem 会在使用后关闭流。
缓存输入流中的数据然后将更多输入流提供给不同的 POIFSFileSystem 的最佳方法是什么?
编辑1:
缓存是指存储以备后用,而不是作为加速应用程序的一种方式。将输入流读入数组或字符串然后为每次使用创建输入流是否更好?
编辑2:
很抱歉重新提出问题,但在桌面和 Web 应用程序中工作时条件有所不同。首先,我从我的 tomcat Web 应用程序中的 org.apache.commons.fileupload.FileItem 获得的 InputStream 不支持标记,因此无法重置。
其次,我希望能够将文件保存在内存中,以便在处理文件时更快地访问和减少 io 问题。
c++ - HTTP 输入流类 (C++)
我目前正在开发一个项目,该项目对其需要的数据执行大量 HTTP 请求。它的工作原理是将所有数据写入缓冲区,然后将该缓冲区返回给调用者。似乎等待整个文件下载基本上可以流式传输的数据是一个坏主意。
问题 1:是否已经有一个库/公共代码可以发出 HTTP 和经过身份验证的 HTTP 请求作为流工作?
问题2:如果没有这样的库,为什么不呢?有没有理由从来不需要这样的东西?