夜间没有看代码,只是再过了一下I/O的复习,明天还要继续赶课程。

    I/O 是指Input和Output,流技术
    1.File
    是一个对象——>它是存储在内存中的,它与硬盘中的文件或文件夹产生了映射关系。
    有了映射关系,我们可以通过file对象去操作本地硬盘中的文件或文件夹。
    file有一些自己的属性和方法例如:
    canRead() canWrite() 用来判断文件或文件夹是否可读可写
    mkdir,mkdirs,createNewFile() 用来创建新的文件或文件夹
    delete() 删除文件或空文件夹
    getName() 获取文件或文件夹的名字
    文件夹的遍历、文件夹的删除——->采用递归的方式
    file无法操作文件的内容

    1. 2.操作文件中的内容,需要用到流技术<br /> 四个基础流(低级流),都是操作文件的:<br /> read write<br /> 字节型:FileInputStream FileOutputStream<br /> 字符型:FileReader FileWriter 使用字符型的流方法操作纯文本更方便<br /> <br /> 在方法的使用时,都有重载:<br /> 读一个元素和读一堆元素放在数组里时read()方法的返回值都是int,<br /> 但是FileInputStream读取的是Byte类型,FileReader读取的是Char类型。<br /> 在读取read的时候,要注意available(),skip()跳过几个字节的<br /> 在写入write的时候,方法刚好与读取read相反,并且要注意flushclose
    2. 3.缓冲流---->将低级流包装起来(包装流)<br /> 从使用方式来讲没有什么差别,缓冲流从性能上来讲,比低级流好一些<br /> BufferedInputStream BufferedOutputStream<br /> *BufferedReader *BufferedWriter<br /> 低级流的构建方法一个是带File对象的,一个是带Stream的<br /> File对象的相当于是把一个file对象构建过来<br /> Stream的相当于给了文件的路径<br /> 高级流中四个对象的构建需要低级流作为参数,都是操作文件的<br /> 返回值 = 方法 方法(参数)<br /> String value = readLine() 操作纯文本用这两个更多:write(String) newLine()
    3. 4.其他的一些流<br /> 对象流:对象的序列化---对象的反序列化<br /> 序列化--->一个对象拆分成有规律的字节--->写入文件<br /> 反序列化->文件中有规律的字节--->组合成一个完整的对象<br /> 以前存储数据才用的方式是:变量\数\集\对象---->都是[在内存中开辟的临时性容器]<br /> 有了文件后,可以将数据存储在文件中,永久地保存起来,让数据持久化<br /> 例如name-age用字符串的方式将信息拼接存入文件,用BufferedReader读取<br /> 若想要永久记录一些事情(方法),但只有对象才有方法,那么可以把对象直接写入文件内来记录方法<br /> 所以对象里可以包含属性(记录信息),对象里还可以有方法记录一些事情(动作)<br /> <br /> 如果想将一个对象序列化到文件中<br /> 需要让对象所属的类实现一个接口(规则)-->Serializable示意性<br /> 还需要让对象存在一个序列化的版本号-->serialVersionUID(属性)通常私有静态<br /> private static final long serialVersionUID = 随机产生一个L;