文件和流学习总结1
1、final可以修饰类、属性、方法,当final修饰类的时候,此类不可被继承,即final类没有子类,这样可以保证用户调用时动作的一致性,可以方法子类覆盖情况的发生
2、final修饰一个属性(变量)的时候,此时的属性成为常量,常量的地址不可改变
3、利用final定义一个方法,此方法不可被覆盖。
4、方法的重写是和父类有相同的方法名、参数列表一致,相同的返回类型,将父类的方法重新写一遍,也叫方法的覆盖,也叫方法的覆写。
5、方法的重载是方法名相同,但是参数类型和参数个数不相同。Overload
在右边那个列表中,其实我想知道InputStreamReader类和FileReader类的区别,到底该用哪个?
还有那个OutputStreamReader类和FileWriter类的区别,到底该用哪个?
那个InputStreamReader类,它是链接字节流和字符流的桥梁。
InputStreamReader类的构造方法是参数是InputStream类型的。
FileInputStream 类以二进制输入/输出,I/O速度快且效率搞,但是它的read()方法读到的是一个字节(二进制数据),很不利于人们阅读,而且无法直接对文件中的字符进行操作,比如替换,查找(必须以字节形式操作);
而Reader类弥补了这个缺陷,可以以文本格式输入/输出,非常方便
InputStreamReader ,它是字节转换为字符的桥梁。 你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如GBK
InputStream类的构造方法中,我设置那个utf-8,就在控制台上显示乱码,用GBK就不乱码。
FileReader类就不用指定的,我估及默认是GBK的,但是我还是不太理解它们。算了就到这里了,明天再说。
Reader类 字符流(文本)
BufferedReader, 创建缓冲流
InputStreamReader, 子类(FileReader类)
Writer类 字符流(文本)
BufferedWriter, 创建缓冲流
OutputStreamWriter,子类(FileWriter类)
InputStream类 字节流(可以处理一些非文本之外的文件,包括对象)
FileInputStream, 从文件系统中的某个文件中获取输入字节,无子类
ObjectInputStream,ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化
OutputStream类 字节流(可以处理一些非文本之外的文件,包括对象)
FileOutputStream, 文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流
ObjectOutputStream,ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化
其实我之前一直都不太了解flush()方法,它在Writer类和OutputStream类中都有,它 是冲刷缓冲区的意思,将缓冲区里的代码强制写入文件中。那Writer类和OutputStream 类的所有直接子类和间接子类都有这个方法。
算了,先写到这里,明天复习网络部分。