ByteArrayInputStream,SequenceInputStream,StringReader在哪里使用

时间:2014-01-14 07:02:32

标签: java inputstream outputstream stringreader bytearrayinputstream

有太多java.io类,对于其中一些我真的不明白我们何时需要它们,例如:

ByteArrayInputStream,ByteArrayOutputStream

SequenceInputStream,

PushbackInputStream,PushbackReader

... StringReader

我的意思是一些现实生活中的用法

有人可以解释一下......

1 个答案:

答案 0 :(得分:3)

我会说你的问题太宽了。

但是,可以对java.io package进行非常基本的概述。它包含用于数据输入和输出操作的 interfaces classes ,例如从文件读取字节。只有很少的基本接口/类:

  • DataInput / ObjectInput - readig Java基元和对象
  • DataOutput / ObjectOutput - 编写Java原语和对象
  • InputStream - 阅读单个字节
  • OutputStream - 撰写个人字节
  • Reader - 阅读字符数据
  • Writer - 撰写字符数据

还有其他有用的界面(如Closeable),但这些界面不太重要。


最好是阅读这些类的JavaDoc。一些例子:

  1. 很明显,您可以使用FileOutputStream将某些内容写入文件。
  2. 字符数据由字节(由字符编码定义)表示,因此您可以使用OutputStreamWriter包装任何输出流。
  3. 您有byte[],想要从InputStream开始阅读吗?使用ByteArrayInputStream
  4. 您希望能够将读取的字节返回给阅读器(通常只支持一次传递)?用PushbackReader
  5. 包裹您的读者
  6. 您有一些String,想要从Reader开始阅读吗?使用StringReader
  7. ...
  8. 因此,如果您需要一些特定的流/读者/作者,请检查java.io包,搜索互联网并在需要时提出问题。


    当然还有java.nio package,你应该知道。但这是针对不同的主题。