ByteArrayOutputStream
全部标签 给定以下代码@MockClientclient;ByteArrayOutputStreambaos=newByteArrayOutputStream();client.retrieveFile(baos);//clientissupposedtofillboaswithdata如何指示Mockito填充baos对象? 最佳答案 您可以使用MockitosAnswer.doAnswer(newAnswer(){@OverridepublicObjectanswer(InvocationOnMockinvocation){Object[
我想弄清楚为什么这个特定的代码片段对我不起作用。我有一个小程序,它应该读取.pdf并使用pdf渲染器库显示它,但由于某种原因,当我读入位于我服务器上的.pdf文件时,它们最终被损坏了。我已经通过再次写回文件对其进行了测试。我已尝试在IE和Firefox中查看小程序,但出现了损坏的文件。有趣的是,当我尝试在Safari(适用于Windows)中查看小程序时,文件实际上没问题!我知道JVM可能不同,但我仍然迷路了。我用Java1.5编译过。JVM是1.6。读取文件的片段如下。publicstaticByteBuffergetAsByteArray(URLurl)throwsIOExcept
我正在尝试使用以下Java代码来压缩和解压缩字符串。但是从新的ByteArrayInputStream对象创建新的GZipInputStream对象的行抛出“java.util.zip.ZipException:不是GZIP格式”异常。有谁知道如何解决这个问题?Stringorig=".............";//compressitByteArrayOutputStreambaostream=newByteArrayOutputStream();OutputStreamoutStream=newGZIPOutputStream(baostream);outStream.write
我想从一个波形文件中读取字节到一个数组中。由于读取的字节数取决于波形文件的大小,因此我创建了一个最大大小为1000000的字节数组。但这会导致数组末尾出现空值。所以,我想创建一个动态增加的数组,我发现ArrayList是解决方案。但是AudioInputStream类的read()函数只将字节读入字节数组!如何将值传递到ArrayList? 最佳答案 ArrayList不是解决方案,ByteArrayOutputStream是解决方案。创建一个ByteArrayOutputStream将字节写入其中,然后调用toByteArray(
我想发送带有zip文件附件的电子邮件。我可以使用ByteArrayOutputStream发送pdf文件而不将它们保存在物理位置。但是当我尝试压缩这些文件并发送它时,它不起作用。它给出了异常非法附件。下面是我编写的用于创建zip的代码。privateMimeBodyPartzipAttachment(ListattachmentList,ListreportFileNames){MimeBodyPartmessageBodyPart=null;try{//Filefile=File.createTempFile("Reports.zip",".tmp");//FileOutputStr
我想从进程的输出和错误流中读取并将它们合并到一个文本流中。我的程序是常规的,读起来像这样:defmergeStream=newByteArrayOutputStream()process.waitForProcessOutput(mergeStream,mergeStream)问题是ByteArrayOutputStream不是线程安全的,waitForProcessOutput()生成两个附加到mergeStream的线程。有没有我可以使用的线程安全变体?您还建议我如何控制对mergeStream的访问?看起来在实践中字符有时会被此实现删除。 最佳答案
我一直在四处寻找这个问题的答案,但找不到任何关于它的东西。今天早些时候,我问我如何通过字节数组将一个文件变成一个字符串,然后再返回,以便稍后检索。人们告诉我的是,我必须只存储字节数组,以避免讨厌的编码问题。所以现在我已经开始着手解决这个问题,但我现在遇到了瓶颈。基本上,我之前使用无缓冲流将文件转换为字节数组。这在理论上很好用,但它会占用大量内存,最终会抛出堆大小异常。我应该改用缓冲流(或者有人告诉我),而我现在遇到的问题是从BufferedInputStream到byte[]。我尝试复制并使用本文档中的方法http://docs.guava-libraries.googlecode.c
我有这么一段代码,就是写一个Ojbect到字节数组流:staticbyte[]toBytes(MyTokenstokens)throwsIOException{ByteArrayOutputStreamout=null;ObjectOutputs=null;try{out=newByteArrayOutputStream();try{s=newObjectOutputStream(out);s.writeObject(tokens);}finally{try{s.close();}catch(Exceptione){thrownewCSBRuntimeException(e);}}}c
如何在JavaMailsession中setDebug(true)捕获流并在我的日志记录框架中使用它?(缺少下载源代码,更改接受流作为参数的方法,重新编译它,...)更一般地说,Java中是否有一种标准方法以这种方式“劫持和重定向”通用流输出?请注意,System.out可能已经被其他输出污染,我不知道如何“过滤”... 最佳答案 您可以将PrintStream链接到ByteArrayOutputStream,告诉JavaMail使用您的PrintStream,执行JavaMail操作,最后,将ByteArrayOutputStre
我调用了一个返回压缩文件的服务。我从响应中将数据作为InputStream(由javax.activation.DataHandler.getInputStream();提供)提供。我想做的是,在不向磁盘写入任何内容的情况下,获取存档文件中解压缩数据的InputStream。在这种情况下,压缩文件是一个xml文档,我试图使用javax.xml.bind.Unmarshaller对其进行解码,它采用InputStream。我目前正在尝试将InputStream写入OutputStream(解压缩数据),然后我需要将其写回InputStream。它还没有用,所以我想我会看看是否有更好的(我