io部分补充


io补充:
    创建file对象只是在内存创建(目录也是file对象)
    对象.createNewFile()才是真正的创建文件

    mkdirs和mkdir方法的区别        
        mkdir方法只能创建当前目录,也就是上级各个目录均存在的情况下才会创建成功,否则创建失败
        而mkdirs可以逐级创建各级目录。
    
    字节流读取中文乱码:UTF-8编码时1个汉字3个字节,1个英文1个字节
        read(byte[]b)读取文件,提高效率并解决乱码问题 (字符流只能操作文本文件。字节流是根本!)
    
    
    节点流:直接和数据源接触的,读取数据的
        访问文件
        访问数组
        访问管道piped
        访问字符串
        SequenceInputStream(序列流)
            表示其他输入流的逻辑串联。
            它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,
            接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。
            需求:把a.txt与b.txt 【文件的内容合并】。
    处理流/包装流:封装节点流上,提供更强大的功能    
        消除不同节点流的实现差异,提供更方便的方法完成输入输出      操作便捷
        【修饰器设计模式】:                                        性能提高
            注意装饰器模式中,装饰类和被装饰类(约定俗成,而非必须)继承自同一个父类。
            reader抽象类 有很多方法,空实现(不是抽象)
                其有很多实现类,实现某一方法,完成一个功能(如:读取文件/读取管道)
            BufferedReader继承reader抽象类
                里面有一个reader类型的属性,构造器传入: reader流
                里面定义加强的方法:多次读取文件的方法(参数是次数,里面调用读取文件的方法),加缓冲等-》多态
            这样:创建BufferedReader对象时,既可以调用读取文件的方法(继承了),又可以调用加强的方法
                而且可以根据创建此对象时,传递的对象(本质),
                来分别调用本质的方法(buff要调用),和加强的方法(装饰)
                
        关闭处理流,其会自动关闭里面的节点流
        
        分类:
            buffered等缓冲流,提高效率并解决乱码问题
            转化流  字节和字符之间转换(前提是知道文件的编码)
            对象处理流/对象序列化流    :读写对象
                序列化具备可继承性,某类实现了序列化接口,其子类也默认可序列化
            DigestInputStream/output完成对输入/输出数据的摘要加密
            DataInputStream 和 DataOutputStream流
                这两个类读写的文件都是针对机器的,DataOutputStream写出去的数据不是给人看的是给机器看的。
                而DataInputStream只能读取DataOutputStream写出去的文件。
    
    标准输入输出流
        system.in默认键盘输入  编译类型是InputStream,运行类型是BufferedInputStream
        system.out默认显示器输出  编译和运行类型都是PrintStream
        
    打印流  只有输出流,没有输入流
        printStream和system.out一样  字节流
        printWriter要刷新的,字符流
    
    properties类:专门用于读取配置文件,传统方法可以读取,但是麻烦
        键=值    键值对不要有空格,值不要有引号,默认String
        load加载文件内容到properties对象
        get/set Property() get得到是是object对象,要转换才能用;set时,没有key就是创建(Unicode),有,就是修改
        list将数据显示到指定设备
        store存储进去,中文会存为Unicode码形式
    
    序列化接口
        Seralizable
        Externalizable
        2者实现一个就行,但是第二个要实现方法,所以一般实现第一个
        
    
 

你可能感兴趣的:(java,开发语言)