黑马程序员技术交流社区

标题: 分享:根据不同的分类来记住IO中诸多的类 [打印本页]

作者: Joseph_liuxh    时间: 2015-1-5 18:35
标题: 分享:根据不同的分类来记住IO中诸多的类

    今天刚学完毕老师的流操作,其中类是在是太多了,学完回头就记混了,好在老师的讲课中涉及到了很多实用的例子(如压缩软件的分卷功能,迅雷的多线程下载),个人觉得流中对数组的操作有千丝万缕的关系,故此分享给大家。
    这是我个人的记忆方式,希望大家可以分享你么对某个流深刻的印象。


l 应用软件中使用到的类
压缩软件的分卷合卷功能
|-- SequenceInputStream
|-- 构造函数Enumeration<InputStream>
|-- SplitFile
|-- 限定数组的存储大小,作为切割碎片的大小,每循环一次创建一个FileOutputStream流。
迅雷的多线程下载功能
|-- RandomAccessFile,用seek(long pos)方法,设置数组的地点,就可以精确的将数组分成几个部分了。再由多个线程来操作每个部分的下载工作。
l 依据数组操作的类
以数组为中介
|-- BufferedInputStream
|-- BufferedOutputStream
|-- BuffererdReader
|-- BufferedWriter
不需要数组
|-- PipedInputStream
|-- PipedOutputStream
|-- 1.使用构造方法new PipedInputStream(PipedOutputStream src);
|-- 2.connect(PipedOutputStream src)
操作一个大的Byte数组
|-- RandomAccessFile
操作数组指针
|-- RandomAccessFile
l 专门操作对象和基本数据类型的类
Object
|-- ObjectInputStream
|-- ObjectInputStream(InputStream in)
|-- Object obj = readObject();
|-- ObjectOutputStream
|-- ObjectOutputStream(OutputStream out);
|-- writeObject(new Object());
基本数据类型
|-- DataInputStream
|-- 直接使用readInt(), readFloat(), readBoolean()等,传统方式是根据数据类型的大小用数组来读取。
|-- DataOutputStream
|-- writeInt(), writeFloat(), writeBoolean()... ...
l 与其他技术的集合
多线程
|-- RandomAccessFile






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2