天天看点

java学习之I/O流

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

  1. 字符流,专门处理字符数据,文本数据

    |– Writer 字符输出流,从java程序写一个文件到目的地

    |– FileWriter

    |– 构造方法,传递字符串格式文件名

    |– write(字符,字符串,数组)写出的方法

    |– flush()刷新流冲的数据,只要用了刷新,数据必走目的地

    |– close()关闭流资源,关闭之前刷新它

    |– Reader 字符输入流,从一个数据源读取数据到java程序

    |– FileReader

    |– 构造方法,传递字符串格式文件名

    |– read() 读取单个字符,返回int值

    |– read(字符数组) 返回数组中有效字符个数

    |– 读取到文件的结尾返回 -1

    |– close()关闭流资源

  2. 字符流的缓冲对象

    |– BufferedWriter 提高流的操作效率

    |– 构造方法,传递一个字符输出流对象

    |– 自己的方法 newLine()写一个换行,跨平台性

    |– BufferedReader

    |– 构造方法,传递一个字符输入流对象

    |– 自己的方法 readLine()读取文本一行,返回字符串,没有换行符号,文件结尾返回null

  3. 复制文本文件案例 ,带异常处理

    |– 第一个写一个,效率最低,不要求掌握

    |– 第二个利用字符数作为缓冲,提供复制的效率,必须要会

    |– 第三个利用字符流的缓冲区对象复制文件 ,必须要会,读一行,写一行

    |– 字符流只能操作文本文件,记事本能开的,不是乱码的,不要通过后缀名判断

    txt log ini java html htm shtml xml bat

    4. 装饰设计模式

    |– 重点理论要知道,知道装饰模式在IO体系的体现

为了进一步的深入了解I/O部分的装饰设计模式,引入javaWEB的经典案例,数据源的书写进行解释。

六、编写标准的数据库连接池
    实现了javax.sql.DataSource的才是标准的数据库连接池,按照字面意思,一般称之为数据源。

    对于一个已知类的某个方法进行功能上的改变有以下三种方式:
    、定义子类,扩展父类的某个功能。(此处行不通)
    、利用包装设计模式改写原有的类的功能
        a、编写一个类实现与被改写类(com.mysql.jdbc.Connection)相同的接口
        b、定义一个引用,记住被改写类的实例
        c、定义构造方法,传入被改写类的实例
        d、对于要改写的方法,改写即可
        e、对于不需要改写的方法,调用原有的对象的对应方法

        *****包装设计模式
        *****默认适配器设计模式

    、动态代理
        *****基于接口的动态代理
    java.lang.reflect.Proxy
    static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) 

    作用:返回代理类的实例
    参数:loader:类加载器,一般与被代理对象使用同一个
         interfaces:被代理对象所实现的接口
         h:怎么代理
             Object invoke(Object proxy, Method method, Object[] args) :调用原有类的任何方法,都会经过此方法。

           

I/O流的体系继承关系

  1. IO流是需要分类,分成两大类,按照操作文件类型

    字节流 ,操作任意文件

    字符流 ,操作文本文件

  2. 按照流向分

    输出流 ,将数据写在文件上

    输入流 ,从文件中读取数据

  3. 字符输出流的抽象基类

    java.io.Writer

  4. 字符输入流的抽象基类

    java.io.Reader

  5. 字节输出流的抽象基类

    java.io.OutputStream

  6. 字节输入流的抽象基类

    java.io.InputStream

IO流概述

java学习之I/O流

Reader读取文件原理

java学习之I/O流

数组缓冲读取文件

java学习之I/O流

继续阅读