代码改变世界

java io读书笔记(2)什么是stream

2013-07-04 20:19  很大很老实  阅读(339)  评论(0编辑  收藏  举报

什么是stream?stream就是一个长度不确定的有序字节序列。

Input streams move bytes of data into a Java program from some generally external source. Output streams move bytes of data from Java to some generally external target

1)streams来自哪里?

 我们最先接触到的input stream,就是system.in,这个类似于c语言中的stdin。如果input stream重定向,则system.in也是重定向,比如:

java MessageServer < data.txt

这里的system.in最初只是指console,只是被重定向了。当然,console也可以用作output stream。比如,system.err.

try {
  //... do something that might throw an exception
}
catch (Exception ex) {
  System.err.println(ex);
 }

这里,无论是System.in还是System.err,都是来自于java.io.PrintStream

Files是另一种常见的input或者output stream。

而网络连接,也是以stream的方式进行。

2)相关的java类

  这些类基本都在java.io包里,主要的类有:java.io.InputStream and java.io.OutputStream这两个类。

其子类包括:

BufferedInputStream
BufferedOutputStream
ByteArrayInputStream
ByteArrayOutputStream
DataInputStream
DataOutputStream
FileInputStream
FileOutputStream
FilterInputStream
FilterOutputStream
ObjectInputStream
ObjectOutputStream
PipedInputStream
PipedOutputStream
PrintStream
PushbackInputStream
SequenceInputStream
java.util.zip包也包含了一些类:
CheckedOutputStream
DeflaterOutputStream
GZIPInputStream
GZIPOutputStream
InflaterInputStream
ZipInputStream
ZipOutputStream
java.util.jar包包括2个主要的类:
JarInputStream
JarOutputStream
java.security包包括:
DigestInputStream
DigestOutputStream