OutputStream和InputStream

来源:互联网 发布:淘宝怎样查看物流信息 编辑:程序博客网 时间:2024/05/18 20:09
总结:InputStream和OutputStream的类结构
参照JDK 1.6帮助文档
 
1、OutputStream
 
|---ByteArrayOutputStream
    //数据被写入一个byte数组,缓冲区会随着数据的不断写入而自动增长
    //常用方法:toByteArray()和toString([charset])
    //write( byte[] b, start, len),将b数组中的内容写到此类的私有的byte数组中
    //write(int b),将b写入到此类的私有的byte数组中
|---FileOutputStream
    //构造方法FileOutputStream(File / fileName, isAppend)
    //write( byte[] b),将b写入文件
    //write( byte[] b, start, len),将b的某段写入文件
    //write( int b),将字节b写入文件
|---FilterOutputStream
    //FilterOutputStream  类本身只是简单地重写那些将所有请求传递给所包含输出流的 OutputStream 的所有方法。
    //FilterOutputStream 的子类可进一步地重写这些方法中的一些方法,并且还可以提供一些额外的方法和字段。
        |---BufferedOutputStream
            //构造方法BufferedOutputStream(OutputStream),新建一个缓冲流,数据最终要写入传进的底层输出流
            //flush,刷新此缓冲流
            //write(byte[] b, start, len)
            //write(int b),将b写入此类本身的byte数组中
        |---CheckedOutputStream //需要维护写入数据校验和的输出流。校验和可用于验证输出数据的完整性
        |---CipherOutputStream
        |---DataOutputStream//数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入
        |---DeflaterOutputStream
                |---GZIPOutputStream //使用 GZIP 文件格式写入压缩数据
                |---ZipOutputStream //以 ZIP 文件格式写入文件
                        |---JarOutputStream //向任何输出流写入 JAR 文件内容
        |---DigestOutputStream //获得一个流的摘要
        |---InflaterOutputStream //解压缩 "deflate" 压缩格式存储的数据
        |---PrintStream
            //为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式
            //PrintStream 永远不会抛出 IOException;而是,异常情况仅设置可通过checkError()方法测试的内部标志
            //
|---ObjectOutputStream // 将 Java 对象的基本数据类型和图形写入 OutputStream
|---PipedOutputStream //将管道输出流连接到管道输入流来创建通信管道。管道输出流是管道的发送端

2、InputStream
 
|---AudioInputStream //音频输入流
|---ByteArrayInputStream
    //read(),从输入流读取一个字节
    //read( byte[] b, start, len),从输入流读取一段
|---FileInputStream
|---FilterInputStream
        |---BufferedInputStream
        |---CheckedInputStream
        |---CipherInputStream
        |---DataInputStream
        |---DeflaterInputStream
        |---DigestInputStream
        |---InflaterInputStream
        |---ProgressMonitorInputStream
            //监视读取某些 InputStream 的进度。大致用以下形式调用此 ProgressMonitor:
 InputStream in = new BufferedInputStream(                          new ProgressMonitorInputStream(                                  parentComponent,                                  "Reading " + fileName,                                  new FileInputStream(fileName)));

            //这可以创建一个进度监视器,以监视读取输入流的进度。如果需要一段时间,将会弹出 ProgressDialog,以通知用户。如果用户单击 Cancel 按钮,则在进行下一次读取操作时会抛出 InterruptedIOException。当关闭流时,会执行所有的正确清除

        |---PushbackInputStream 
            //PushbackInputStream 为另一个输入流添加性能,即“推回 (push back)”或“取消读取 (unread)”一个字节的能力
|---ObjectInputStream
|---PipedInputStream
|---SequenceInputStream
    //SequenceInputStream 表示其他输入流的逻辑串联。
    //它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾。
    //接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止
0 0
原创粉丝点击