相关疑难解决方法(0)

从OutputStream创建InputStream的最有效方法

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

new ByteArrayInputStream(out.toByteArray())
Run Code Online (Sandbox Code Playgroud)

其他替代方案是使用PipedStreams和新线程,这很麻烦.

我不喜欢将许多兆字节复制到内存字节数组中的新内容.有没有一个库可以更有效地完成这项工作?

编辑:

根据Laurence Gonsalves的建议,我尝试了PipedStreams,事实证明它们并不难以应对.这是clojure中的示例代码:

(defn #^PipedInputStream create-pdf-stream [pdf-info]
  (let [in-stream (new PipedInputStream)
        out-stream (PipedOutputStream. in-stream)]
    (.start (Thread. #(;Here you write into out-stream)))
    in-stream))
Run Code Online (Sandbox Code Playgroud)

java io inputstream stream bytearrayoutputstream

80
推荐指数
4
解决办法
9万
查看次数

将ByteArrayInputStream的内容转换为String

我读过这篇文章,但我没有关注.我已经看过这个,但还没有看到一个将a转换ByteArrayInputStreamString使用a 的正确例子ByteArrayOutputStream.

要检索的内容ByteArrayInputStreamString,使用ByteArrayOutputstream推荐的还是有一个更可取的方法?

我正在考虑这个例子并扩展ByteArrayInputStream和利用一个Decorator来增加运行时的功能.任何对此的兴趣都是采用ByteArrayOutputStream?的更好解决方案?

java string bytearrayoutputstream bytearrayinputstream

22
推荐指数
3
解决办法
6万
查看次数

使用gzip压缩InputStream

我想使用Gzip压缩在java中压缩输入流.

假设我们有一个未压缩的输入流(1GB数据..).我希望结果来自源的压缩输入流:

public InputStream getCompressedStream(InputStream unCompressedStream) {

    // Not working because it's uncompressing the stream, I want the opposite.
    return new GZIPInputStream(unCompressedStream); 

}
Run Code Online (Sandbox Code Playgroud)

java gzip

17
推荐指数
2
解决办法
2万
查看次数

是否有用于在Java中设置默认日志级别的命令行选项

我可以做一些事情:

-Djava.util.logging.loglevel=FINE
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,但你明白了.有什么相似的吗?或者我被迫创建属性文件?

java logging

14
推荐指数
2
解决办法
1万
查看次数

使用PipedInputStream java编写end dead exception

在以下情况下发生写入结束异常:两个线程:

A: PipedOutputStream put = new PipedOutputStream();
   String msg = "MESSAGE";
   output.wirte(msg.getBytes());
   output.flush();

B: PipedInputStream get = new PipedOutputStream(A.put);  
   byte[] get_msg = new byte[1024];
   get.read(get_msg);
Run Code Online (Sandbox Code Playgroud)

情况如下:A和B同时运行,A写入管道,B读取它.B只是从管道中读取并清除了该管道的缓冲区.然后A不会在未知的时间间隔内将msg写入管道.但是,在某一时刻,B再次读取管道并java.io.IOException: write end dead发生,因为管道的缓冲区仍然是空的.而且我不想睡眠()线程B等待A写管道,这也是不稳定的.如何避免这个问题并解决它?谢谢

java multithreading ioexception

9
推荐指数
2
解决办法
8227
查看次数

InputStream的自定义实现

要将数据发送到我的FTP服务器上的文件,我需要创建一个自定义的InputStream实现,逐行读取数据库数据,将其转换为CSV并通过其read()方法发布它:从数据库中,我得到一个List<Application>对象数据.对于每个Application对象,我想在CSV文件中创建一行.

我的想法是在构造函数中加载所有数据,然后覆盖read方法.我是否需要覆盖所有InputStream的方法?我尝试谷歌搜索一些例子,但没有成功 - 你最终能给我一个链接吗?

java ftp inputstream java-io

6
推荐指数
3
解决办法
1万
查看次数

Java中是否可以生成动态InputStream?

我在网上查看了InputStreams,似乎您只能定义一个带有预定义输入的InputStream,它将从中读取。如果我想要一个输入流,我们不确定数据是什么样子或者有多长,但它是在运行中的某个地方生成的,但完成后最终会返回零字节,该怎么办?

我所说的预定义是指大多数构造函数都会接受您已经定义的读取内容(例如:ByteArrayInputStream(byte[] array)、FileInputStream(File file))

我的用例是,我有一个返回一定量数据的方法(该方法调用服务的时间未知,我想在动态生成时流式传输这些数据)

java inputstream

5
推荐指数
1
解决办法
4038
查看次数

将ByteArrayOutputStream转换为FileInputStream

我已经保存了流ByteArrayOutputStream.现在我想读一下FileInputStream.我怎样才能做到这一点?

这是我的outputStream.

...
OutputStream out = new ByteArrayOutputStream();
...
Run Code Online (Sandbox Code Playgroud)

现在怎么读,从FileInputStream

java

3
推荐指数
1
解决办法
1万
查看次数