OutputStream和InputStream

总结: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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值