为什么你可以阅读从已经关闭ByteArrayOutputStream数据?

我不知道为什么你仍然可以读取已经关闭字节ByteArrayOutputStream 。 没有这条线从文档的意思是相反的?

public void close ()关闭此流。 这将释放用于该流的系统资源。

示例代码:

String data = "Some string ..."; ByteArrayOutputStream bOut = new ByteArrayOutputStream(); DataOutputStream dOut = new DataOutputStream(bOut); dOut.write(data.getBytes()); dOut.close(); System.out.println("Length: " + bOut.toByteArray().length); System.out.println("Byte #2: " + bOut.toByteArray()[2]);

输出:

Length: 15 Byte #2: 109

难道我做错了什么?

--------------解决方案-------------

ByteArrayOutputStream.toByteArray只是复制它在缓冲区中; 它不读任何东西从流。

public synchronized byte[] toByteArray() {
return Arrays.copyOf(buf, count);
}

另外这个类是有点特别。 请参阅Java文档和代码。

关闭一个ByteArrayOutputStream没有效果。 此类中的方法后,可以在流,而不会产生IOException时被调用。

public void close() throws IOException {
}

close()并没有真正做任何事情。

分类:java的 时间:2012-01-01 人气:1
分享到:

相关文章

  • 如何从两个不同的地方在Java中使用缓冲IO读取文件 2013-01-23

    我从文件中读取,以便执行合并排序的数字. 合并排序必须作为外部排序,因为它是一个数字的大名单,并有可用很少的主存储器来执行. 我有一个工作实现,它使用的BufferedOutputStream加快输出,并且我要为输入流这样做. 然而,输入必须从两个不同的地方被读取以执行合并. 从本质上讲,如果我有: RandomAccessFile File = new RandomAccessFile("File.dat", "rw"); BufferedInputStream

  • 为什么在Java中java.lang.Thread类没有标记最终由设计师? 2013-02-27

    什么是允许用户通过继承Thread类来创建线程时,我们可以通过实现Runnable实现相同的功能,并把它传递给Thread构造的精髓. 此外,在.NET中的Thread类标记决赛. --------------解决方案------------- 通过实现Runnable实现相同的功能,并把它传递给Thread构造 利用扩展Thread的并不限于Runnable接口. 例如,您可以更改的一些方法的行为或添加自己的线程本地信息(总是与访问Thread.currentThread() Thread是不

  • 在下载Java中-java.net.SocketException文件错误:连接重置 2014-03-27

    我试图下载使用插座和服务器的Java文件. myClient = new Socket(address,port); myClient.setSoTimeout(MyFileManager.TIME_OUT); in = new DataInputStream(myClient.getInputStream()); out = new DataOutputStream(myClient.getOutputStream()); File requestedFile = new File(_file

  • 需要发送一个UDP数据包并接收在Java中的响应 2013-09-26

    我要送一个UDP包,并得到响应从UDP服务器回来. 我虽然是UDP在Java中java.net.DatagramPacket中类似,但DatagramPacket类的文件似乎是你发送一个数据包,但没有得到任何回报,这就是用正确的事或我应该使用Java的. net.Socket --------------解决方案------------- UDP数据报发送和接收(源)的例子: import java.io.*; import java.net.*; class UDPClient { publi

  • 如何登录在Java中的X.509证书HTTP请求? 2015-02-10

    如何执行HTTP请求,并使用Java X.509证书签名? 我通常程序在C#. 现在,我想要做的东西类似于以下,只有在Java中: private HttpWebRequest CreateRequest(Uri uri, X509Certificate2 cert) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri); request.ClientCertificates.Add(cert); /* ...

  • Java中,IO - 最快删除的文件的方式 2012-10-30

    我的问题是,我有一个应用程序,它是写了很多的比较(100-500kb)小CSV文件(几十几十万). 这些文件的内容,那么得到的数据库通过SQL调用装载机(它的Oracle数据库)加载,这是我必须忍受. 所以,我需要删除这些小文件的时间,以时间来防止他们吃了所有的空间. 我想以连接到写入这些文件并加载它们到数据库作为最后敲定一步的活动. 我的问题是 - 如何在Java中可以将一个删除了一堆小文件,而性能开销更少? 提前致谢! 迈克尔· --------------解决方案-------------

  • 异步IO在Java中? 2013-05-19

    什么选择异步IO(基于套接字)有没有在Java中其他然后java.nio中? 也并java.nio中使用线程的底色(因为我认为.NET的异步编程库做,也许它已经改变)或者是"真正的"异步IO使用适当的选择调用? --------------解决方案------------- Java的NIO包(为的Java6的),提供了非阻塞I / O只能通过选择器的支持. java7目录是希望将随NIO.2,其中包括异步I / O支持. 今天,最好的办法就是要利用一个框架. 停战提到米娜. 这里有一

  • NIO性能改进相比于传统的IO在Java中 2014-10-01

    我看过很多文章/博客说的Java NIO是一个更好的解决方案相比传统的Java IO. 但是,今天我的同事之一,给我看了这个博客http://mailinator.blogspot.com/2008/02/kill-myth-please-nio-is-not-faster-than.html. 我想知道从Java社区是否有人做过这样的标杆与Java NIO的性能. --------------解决方案------------- NIO VS IO是一个非常有趣的话题来讨论. 这是我的经验,这两

  • 错误在Java中:java.io.FileNotFoundException:C:\用户\ FSSD \桌面\我的测试(访问被拒绝) 2015-02-16

    我有一份文件从一个文件夹到另一个文件夹中的Java代码. 我用下面的代码(我使用Windows 7操作系统) CopyingFolder.java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.channels.FileChannel; public class CopyingFold

  • 在Java中,有没有做尾-f功能除了common.apache.io.Tailer API的最简单方法 2012-09-10

    使用Java,我要监控的日志文件,如果从给定的输入字符串的日志文件中匹配的任何行,它应该打印日志信息. 同时启动该应用程序时,它应该从日志文件的末尾,即读,应该读像只更新日志消息tail -f不是从日志文件的开头. 如何实现这个在java中除了使用Apache共同赣骏API? --------------解决方案------------- 创建RandomAccessFile的打开文件,寻求结束和开始使用的readLine(). 你得到的第一行可能会由左被裁剪. 你可以,如果你想获得一些最后一行

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.567 (s). 10 q(s)