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