A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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


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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马