Java初学笔记25
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/bb066b6eee81566e6e0191a8dd611355.png)
九、(模拟)修饰器设计模式
Reader01
package project.modifier_design_pattern;
/**
* @Package: project.modifier_design_pattern
* @ClassName: Reader01
* @Author: 爱吃凉拌辣芒果
* @CreateTime: 2021/11/1 15:14
* @Description:
*/
public abstract class Reader01 {
public void readFile_(){};
public void readString_(){};
}
FileReader01
package project.modifier_design_pattern;
/**
* @Package: project.modifier_design_pattern
* @ClassName: FileReader01
* @Author: 爱吃凉拌辣芒果
* @CreateTime: 2021/11/1 15:15
* @Description:
*/
public class FileReader01 extends Reader01{
public void readFile_(){
System.out.println("file文件读取操作");
};
}
StringReader01
package project.modifier_design_pattern;
/**
* @Package: project.modifier_design_pattern
* @ClassName: StringReader01
* @Author: 爱吃凉拌辣芒果
* @CreateTime: 2021/11/1 15:14
* @Description:
*/
public class StringReader01 extends Reader01{
public void readString_(){
System.out.println("String文件读取操作");
};
}
BufferReader01
package project.modifier_design_pattern;
/**
* @Package: project.modifier_design_pattern
* @ClassName: BufferReader01
* @Author: 爱吃凉拌辣芒果
* @CreateTime: 2021/11/1 15:16
* @Description:
*/
public class BufferReader01 extends Reader01{
private Reader01 in;
public BufferReader01(Reader01 in) {
this.in = in;
}
/**
* 多次操作StringReader01字符串文件
*/
public void StringReaderNum(int num){
for (int i = 0; i < num; i++) {
in.readString_();
}
}
/**
* 多次操作FileReader01文件
*/
public void FileReaderNum(int num){
for (int i = 0; i < num; i++) {
in.readFile_();
}
}
public void readFile_(){
in.readFile_();
};
public void readString_(){
in.readString_();
};
}
Test
package project.modifier_design_pattern;
/**
* @Package: project.modifier_design_pattern
* @ClassName: Test
* @Author: 爱吃凉拌辣芒果
* @CreateTime: 2021/11/1 15:20
* @Description:
*/
public class Test {
public static void main(String[] args) {
BufferReader01 bufferReader01 = new BufferReader01(new StringReader01());
bufferReader01.StringReaderNum(5);
BufferReader01 bufferReader02 = new BufferReader01(new FileReader01());
bufferReader02.FileReaderNum(8);
System.out.println();
bufferReader01.readString_();
bufferReader02.readFile_();
}
}
十、BufferedReader 和 BufferedWriter
1. BufferedReader
2. BufferedWriter
3. 文件的拷贝
十一、BufferedInputStream 和BufferedOutputStream
1. BufferedInputStream介绍
BufferedInputStream是字节流,在创建BufferedInputStream时,会创建一个内部缓冲区数组.
2. BufferedOutputStream介绍
BufferedOutputStream是字节流,实现缓冲的输出流,可以将多个字节写入底层输出流中,而不必对每次字节写入调用底层系统。
3. 拷贝(音频文件拷贝)
使用BufferedInputStream 和 BufferedOutputStream他们,可以完成二进制文件拷贝。那字节流可以操作二进制文件, 也可以操作文本文件吗? 当然可以