IO

IO 流

Input / Output

完成输入 / 输出

应用程序运行时 — 数据在内存中        把数据写入硬盘(磁带)

                               内存中的数据不可持久保存的

输入: 从外部存储器(硬盘、磁带、U盘)把数据读入内存。

输出: 从内部中把数据写入外部存储器(硬盘、磁带、U盘)中。

            这样就可以保证: 即使程序退出了,数据依然不会丢失

File — 代表磁盘上的文件或目录

    listRoots : 列出磁盘上所有的根目录。

    exists : 判断是否存在

    mkdir: 创建目录

    listFiles() : 列出当前目录下所有的文件与子目录

    listFiles(FileFilter filter):列出当前目录下符合指定条件的文件与子目录

列出某个磁盘的所有文件 — 这就要用到递归。

IO 流

File 的特征:只能访问磁盘上的文件和目录,它无法访问文件内容

如果要访问文件中的内容,必须使用 IO 流

流的分类:

按 流的方向 来分(从程序所在的内存的角度来看):

——输入流:把外部输入读入当前程序所在内存

——输出流:把当前程序所在内存的数据输出到外部

按 流处理的数据 来分:

——字节流: 它处理数据单元是字节(8 bit),适应性广、功能强大

——字符流: 它处理数据单元是字符。通常来说它主要用于处理文本文件。它在处理文本文件时,比在字节流更方便。

按 流的角色 来分:

——节点流:直接和一个 IO 的物理节点(磁盘上的文件、网络)关联

——包装流(处理流 / 过滤流):以节点为基础,包装之后得到的流。

流的概念模型

输入流: 负责把外部的数据,读入到程序所在内存

缓冲流

外部存储器的速度比内存的速度要慢,外部存储器的读写与内存的读写并不同步!!通过缓冲就可以解决这种不同步!

把流用完了,别忘了调用 flush (把缓冲中的内容刷入实际的节点)方法。调用 close() 也可—— 系统会在关闭之前,自动刷缓存。

IO 流一共涉及 40 多个类

基本的四个:InputStream      OutputStream     字节流  

                                Reader    Write                   字符流

这四个是抽象的,不能直接拿来用,在前面加 File 即变成  访问文件。

LileInputStream    FileOutputStream    FileReader    FileWrite


IO_第1张图片
流的概念模型


IO_第2张图片

DataInputStream             DataOutputStream                     (特殊)

他们是两个特殊的流——他们是过滤流(建立在已有 IO 流的基础上)

—— 他们只要增加一些特定的方法来读取特定的数据。

重定向标准输出输出:

IO_第3张图片

RandomAccessFile - 随机(任意)访问文件。

Random - 想访问文件的哪个点,就访问文件的哪个点(任意)。

IO_第4张图片


IO_第5张图片
IO_第6张图片
IO_第7张图片
IO_第8张图片

Java界面编程

IO_第9张图片
IO_第10张图片






以上


写在最后:

终于定好火车票了。先回去看看情况吧,如果觉得没有机会,再回来收拾办理离职吧,宽慰一下自己,一切都看命喽,也不要有太大的压力吧,运气也很重要,不管公司如何,一定要来北京啊,虽说也得看缘分,但是还是得努力。

你可能感兴趣的:(IO)