10-16唐兆文
读取单个字符 read()方法 每次可以读取一个字符的数据,提升为int类型,读取文件末尾,返回-1循环读取
读取多个字符 read(char[] cbuf)每次读取cbuf的长度个字符到数组中,返回读取到的有效字符个数,读取到末尾,返回-1
java.io.BufferedReader从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。可以指定缓冲区大小,或者可以使用默认大小。默认值足够大,可用于大多数用途。它是一个缓冲流
FileWriter类中的所有方法都来自其父类OutputStreamWriter,没有重写任何方法同时也没有扩展的方法。也就是说,学习了FileWriter同时也学习了OutputStreamWriter
序列化:是指把一个java对象变成二进制内容,本质上就是一个byte[]数组
反序列化:把一个二进制内容(也就是byte[]数组)便会java对象
ObjectOutputStream既可以写入基本类型,如int,boolean,也可以写入String(以UTF-8编码),还可以写入实现了Serializable接口的Object
transient关键字,transient瞬态,修饰的成员,不会被序列化。
因为Java的序列化机制可以导致一个实例能直接从byte[]数组创建,而不经过构造方法,因此,它存在一定的安全隐患。一个精心构造的byte[]数组被反序列化后可以执行特定的Java代码,从而导致严重的安全漏洞。实际上,Java本身提供的基于对象的序列化和反序列化机制既存在安全性问题,也存在兼容性问题。更好的序列化方法是通过JSON这样的通用数据结构来实现,只输出基本类型(包括String)的内容,而不存储任何与代码相关的信息。
复习
构造方法的作用是成员变量初始化
构造方法没有返回值
static修饰的方法称为静态方法或者类方法,类方法不依赖任何对象,用类名加“.”调用。类方法在类名首次出现时初始化,即使没有创建对象,类方法也是存在的
super只能出现在子类(子类的普通方法或者构造方法中)super用于访问父类的属性,方法,构造方法
方法重写是实现多态的基础
近期评论