I/O相关 输入/输出 流(数据流动)
    数据流动的方向 读数据(Input) 写数据(输出Output)
    文件流 字符流 数据流 对象流 网络流….

    File是一个类
    1.java.io包中
    2.文件或目录路径名的抽象表示形式
    3.FIle与真实硬盘中的文件或文件夹 不是一个东西
    FIle是在内存中的一个对象 “映射” 硬盘上的文件或文件夹
    4.File类中的常用的方法
    canRead() canWrite() isHidden() isFile() isDirectory()
    length() 获取文件中字节的个数
    lastModified() 获取文件最后修改时间 —-》 毫秒值
    getAbsolutePath() 获取文件的绝对路径
    getName 获取文件的名字
    delete() 删除文件或文件夹 // 只能删除空的文件夹,不能删除有内容的文件夹

    绝对路径 <—-> 相对路径
    绝对路径可以通过完整的字符串 定位盘符 文件夹 文件
    相对路径没有盘符的写法 当前工程(项目)所在的位置找寻
    *由于我们是写给客户的就推荐用 相对路径
    *绝对路径 有 C:// 盘符

    boolean = createNewFIle() 创建新的文件
    boolean = mkdir 创建新的文件夹 一级
    boolean = mkdirs 创建新的文件夹 多级
    String pname = getParent() 获取当前file的父亲file名字
    FIle file = getParentFIle() 获取当前file的父亲file对象
    // 有了对象就可以根据这文件对象 找到路径 getAbsolutePath()

    ///////////////////////////////////////字符流////////////////////////////////////
    字符流针对的是内容
    =======
    创建输入 文件不存在 FIleNotFoundException
    创建输出 文件不存在 会自动创建
    所以放的位置也要注意是否在 异常内
    FileInputStream FIleOutputStream
    =======
    使用字节对文件进行读取:
    FileInputStream
    read()
    read(byte[])
    available()
    skip(long n) 跳过几个字节读取
    close() 关闭的是流通道,不是file对象
    最好放在finally里 注意代码的健壮性 判断严谨
    使用字节对文件进行写入
    FileOutputStream
    String 边 byte 数组 很重要
    write(int code); 将code对应的字符写入文件
    write(byte[])
    flush() 刷新
    close()
    ////////////////////// 出现乱码就改文件的格式,改成idea的格式,这样简单点
    String s = “你我他”
    byte[] = s.getButes(“UTF-8”)
    new String(byte[],”UTF-8”) // 可以有这两种方式改变格式
    ///////////////////////
    字符流:FileReader/FileWriter

    /////////////////////////////缓冲流/////////////////////////
    在流管道内增加缓存的数据
    让我们使用流读取的文字更加的流畅
    高级流 —-》创建通过低级流
    BufferedInputStream/BufferedOutputStream
    BufferedReader/BufferedWriter
    都是在file。。。。 基础上的
    ================== String拆分后是 数组 String[] value = s.split() ==================

    文件流
    低级
    字节型 FileInputStream FIleOutputStream
    字符型 fileReader FileWriter
    缓冲
    字节型 BufferedInputStream BufferOutputStream
    字符型 BufferedReader BufferedWriter
    数组流
    byte数组 ByteArrayInputStream ByteArrayOutputStram
    char数组 CharArrarReader CharArrayWriter

    对象流
    ObjectInputStream ObjectOutputStream
    对象的序列化/反序列化
    序列化:对象的那个类要 有 接口 implements Serializable
    反序列化:会报错要有这个字段:private long serialVersionUID = 8297689626700606849L;
    1ializable