字符流的缓冲区
缓冲区的出现是为了提高流的操作效率而出现的。
所有在创建缓冲区之前,必须要现有流对象。
对应类:BufferedWriter、BufferedReader
字符流写入缓冲区:
//创建一个字符写入流对象
FileWriter fw = new FileWriter("buf.txt");
//为了提高字符写入流效率,加入缓冲技术。
//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可。
BufferedWriter bufw = new BufferedWriter(fw);
bufw.write("abcd");
//只要用到缓冲区,就必须要刷新。
bufw.flush();
//关闭缓冲区,就是关闭缓冲区中的流对象。
bufw.close();
字符流读取缓冲区:
readLine():读取一行的方法,读完时返回null。
装饰设计模式:
当想要对已有的对象进行功能增强时,可以定义一个类,将已有对象传入,
基于已有功能,并提供加强功能。那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象,
并基于被装饰的对象的功能,提供更强的功能。
装饰类与继承:
装饰模式比继承要灵活,避免了继承体系臃肿。而且降低了类与类之间的关系。
装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强的功能。
所有装饰类和被装饰类通常都属于一个体系中的。
字符流:
FileReader、FileWriter
BufferedReader、bufferedWriter
字节流:
InputStream、OutputStream
BufferedInputStream、BufferedOutputStream
读取键盘录入。
System.out:对应的是标准输出设备,控制台。
System.in:对象的是标准输入设备,键盘。
流操作的基本规律:
1、明确源和目的。
源:输入流。InputStream、Reader
目的:输出流。OutputStream、Writer
2、操作的数据是否为纯文本。
是:字符流。Reader、Writer
否:字节流。InputStream、OutputStream
3、当体系明确后,在明确要使用哪个具体对象。
通过设备来区分:
源设备:内存,营养,键盘。
目的设备:内存,硬盘,控制台。
缓冲区的出现是为了提高流的操作效率而出现的。
所有在创建缓冲区之前,必须要现有流对象。
对应类:BufferedWriter、BufferedReader
字符流写入缓冲区:
//创建一个字符写入流对象
FileWriter fw = new FileWriter("buf.txt");
//为了提高字符写入流效率,加入缓冲技术。
//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可。
BufferedWriter bufw = new BufferedWriter(fw);
bufw.write("abcd");
//只要用到缓冲区,就必须要刷新。
bufw.flush();
//关闭缓冲区,就是关闭缓冲区中的流对象。
bufw.close();
字符流读取缓冲区:
readLine():读取一行的方法,读完时返回null。
装饰设计模式:
当想要对已有的对象进行功能增强时,可以定义一个类,将已有对象传入,
基于已有功能,并提供加强功能。那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象,
并基于被装饰的对象的功能,提供更强的功能。
装饰类与继承:
装饰模式比继承要灵活,避免了继承体系臃肿。而且降低了类与类之间的关系。
装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强的功能。
所有装饰类和被装饰类通常都属于一个体系中的。
字符流:
FileReader、FileWriter
BufferedReader、bufferedWriter
字节流:
InputStream、OutputStream
BufferedInputStream、BufferedOutputStream
读取键盘录入。
System.out:对应的是标准输出设备,控制台。
System.in:对象的是标准输入设备,键盘。
流操作的基本规律:
1、明确源和目的。
源:输入流。InputStream、Reader
目的:输出流。OutputStream、Writer
2、操作的数据是否为纯文本。
是:字符流。Reader、Writer
否:字节流。InputStream、OutputStream
3、当体系明确后,在明确要使用哪个具体对象。
通过设备来区分:
源设备:内存,营养,键盘。
目的设备:内存,硬盘,控制台。