IO流:
程序需要实现与设备之间的数据传输,比如从键盘输入数据给程序,程序从显示器输出结果。java中将这种不同输入输出设备(网络、内存、外存、显示器、键盘)之间的数据传输称为流。程序通过“流”的方式与设备进行数据传输。Java中的流位于java.io包中,称为IO流。
先有的字节流,后来由于文本文件编码不同会导致乱码问题,出现了字符流
字节文件用InputStream./OutputStream类
字符文件用Writer/Reader类
读一个文本文件:
public static void main(String[] args)throws IOException
{
//先创建关联
FileReader fr = new FileReader("Demo_copy.txt");
//设置缓冲区,提高效率
BufferReader bufr = new BufferReader(fr);
int len=0;
while((len=bufr.read()))
装饰设计模式:
增强已有对象具备的功能,避免了继承过于臃肿的问题,将某类对象作为参数传入装饰类,通过多态实现扩展。
装饰类和被装饰类通常是一个父类之下的。灵活性更强。
Reader类中的read()方法—>readLine()方法-->LineNumberReader()方法,就使用了装饰设计模式
一次读一个字符 一次读一行字符 一次读一行并且带行号