问题标签 [outputstream]

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 投票
2 回答
1329 浏览

java - Java - 将输入传递到外部 C/C++ 应用程序

我正在尝试使用 Java 在外部应用程序中输入一些值。

Java 应用程序如下所示:

应用程序在 waitFor 方法处挂起。

外部应用程序如下所示:

欢迎横幅使用 printf 打印,输入使用 SetConsoleMode/ReadConsoleInput。ReadConsoleInput 读取一个字符,它们被 * 字符掩盖。

帮助

0 投票
3 回答
5420 浏览

java - 通过 JNI 接口共享输出流

我正在编写一个通过 JNI 接口使用 C++ 库的 Java 应用程序。C++ 库创建类型为 的对象Foo,这些对象通过 JNI 适当地传递给 Java。

假设库有一个输出函数

我有一个 Java OutputStream out。如何Foo::print从 Java 调用以使输出显示在上out?有什么方法可以强制OutputStreamstd::ostreamJNI 层中的 a 吗?我可以在 JNI 层的缓冲区中捕获输出然后将其复制到out吗?

0 投票
4 回答
27238 浏览

java - 用Java将下载的二进制文件写入磁盘

我有一个允许在允许使用 Java 函数的 javascript 文件 (.js) 中编写附加组件的软件(我不知道这是否常见,我以前从未在 javascript 文件中看到过 java 调用)

我需要从网络服务器下载二进制文件并将其写入硬盘。我尝试了以下代码:

生成的文件不再是有效的 gzip 存档。如果我犯了一个巨大的错误,我很抱歉,但我不是程序员,也不太了解 Java。

0 投票
1 回答
747 浏览

java - 以不同速率从 InputStream 多次读取

我即将加载在线内容(例如音频文件)。如果我只是打开到远程文件的连接(例如通过使用new URL().openStream())并将远程传递给音频播放器,它会逐渐从网络中InputStream读取。如果音频播放器库不要求更多数据,它不会从网络读取任何内容,然后当库要求更多数据时,它会再次读取。InputStream

我的问题是我想在第一个加载过程完成后立即开始缓存下一个在线音频文件。使用 normal InputStream,在音频播放完成时读取完成,这不好,因为如果网络带宽允许,我希望它读取得更快,以便缓存下一个音频文件。我的音频文件小于 3mb,因此可以安全地缓存到内存中。我只预取一个文件,所以内存泄漏没有问题。

是否有任何类型的缓存InputStream,它也允许并发读取?然后我可以运行一个线程并比音频播放器消耗数据更快地缓存音频。

0 投票
10 回答
119819 浏览

java - 将输入流连接到输出流

java9 中的更新:https ://docs.oracle.com/javase/9​​/docs/api/java/io/InputStream.html#transferTo-java.io.OutputStream-

我看到了一些类似的,但不是我需要的线程。

我有一个服务器,它基本上会从客户端客户端 A 接收输入,并将其逐字节转发到另一个客户端客户端 B。

我想将客户端 A 的输入流与客户端 B 的输出流连接起来。这可能吗?有什么方法可以做到这一点?

此外,这些客户端正在相互发送消息,这些消息对时间有些敏感,因此无法进行缓冲。我不想要一个说 500 的缓冲区并且客户端发送 499 个字节,然后我的服务器推迟转发 500 个字节,因为它没有收到最后一个字节来填充缓冲区。

现在,我正在解析每条消息以找到它的长度,然后读取长度字节,然后转发它们。我认为(并测试)这比读取一个字节并一遍又一遍地转发一个字节要好,因为那会非常慢。出于我在上一段中所述的原因,我也不想使用缓冲区或计时器——我不希望仅仅因为缓冲区未满而等待很长时间才能通过的消息。

有什么好方法可以做到这一点?

0 投票
2 回答
835 浏览

bytearray - Java 项目模块 - 使用 InputStream/OutputStream 或 .tmpFile/byte[]

我发现自己在我的应用程序模块周围传递 InputStream/OutputStream 对象。

我想知道是否更好- 将内容保存到磁盘并 在各种方法调用之间
传递类似Resource
的东西- 使用 byte[] 数组
而不是每次都处理流。

在这些情况下你的方法是什么?
谢谢

编辑:
我有一个控制器接收用户上传的文件。我有一个实用程序模块,它提供了一些功能来呈现文件。

InputStream 中的文件是用户上传的文件。os 是与响应关联的流。我想知道是否最好使用实用程序方法将生成的文件保存在 .tmp 文件中并返回文件路径或字节 [] 等,并让控制器直接处理 outputStream。

0 投票
3 回答
20244 浏览

java - 响应输出流内容长度?

我正在通过各种方法写入输出流。在我关闭它之前,我怎样才能找出输出流的内容长度?

0 投票
3 回答
2110 浏览

java - 取消从 InputStream 读取

目前我正在使用 aObjecInputStream从 a 中读取Socket,并且使用这个简单的代码一切正常:

现在我想以某种方式取消读取,而不关闭流,以便我以后可以再次读取它。是否可以?

编辑:我想取消读取只是因为它阻塞了程序流程。我不需要两次阅读相同的信息。我只想取消它,以便我可以发送另一个请求,然后读取(另一个)响应。

0 投票
10 回答
268009 浏览

java - 什么是输入流和输出流?我们为什么以及何时使用它们?

有人向我解释什么InputStreamOutputStream是什么?

我对InputStream和的用例感到困惑OutputStream

如果您还可以包含一段代码来配合您的解释,那就太好了。谢谢!

0 投票
4 回答
2246 浏览

java - 包装多个输出流对象时的 Java 输出流行为

我有一个对文件输出流进行压缩、加密和校验和的代码。以下是代码-

正如您在此处看到的,我正在包装“os”对象以进行加密、压缩等,然后在每个 wrapOStreamWithCheckSum、wrapOStreamWithCipher 和 wrapOStreamWithCompress 方法中重新分配具有不同对象(使用 new 创建)的“os”变量。我想知道这是否会导致内存泄漏?创建的较旧的“os”对象实际上会发生什么?换句话说,使用“new”创建了 4 个对象,但被重新分配给相同的“os”变量。我发现很难理解,因为新对象的创建/运行本身依赖于内部的旧对象。