6、装饰设计模式
说明:
装饰设计模式,实现了RadarCar类对Car类的包装。7.演示BufferedInputStream和BufferedInputStream这两个流的用法
public class testIO {
public static void main(String[] args) throws IOException {
//创建一个带缓冲区的输入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\test.txt"));
//创建一个带缓冲区的输出流
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:\\dest.txt"));
int len;
while((len = bis.read())!=-1){
bos.write(len);
}
bos.close();
bis.close();
}
}
8.字符流操作文件
使用FileReader读取文字中的字符public class testIO {
public static void main(String[] args) throws IOException {
// 创建一个FileReader对象用来读取文件中的字符
FileReader reader = new FileReader("test.txt");
int ch;// 记录读取的字符
while ((ch = reader.read()) != -1) {// 循环判断是否读取到文件末尾
System.out.print((char) ch);
}
reader.close();
}
}
<img src="https://img-blog.csdn.net/20160721190641770?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
9.演示字符包装流的使用
从一个文件中,读入数据,然后写入到另一个文件中,如果该文件不存在,则会自动创建。
从而实现文件的拷贝。
public static void main(String[] args) throws IOException {
FileReader reader = new FileReader("test.txt");
// 创建一个BufferedReader对象
BufferedReader br = new BufferedReader(reader);
FileWriter writer = new FileWriter("des.txt");
// 创建一个BufferedWriter
BufferedWriter bw = new BufferedWriter(writer);
String str;
while((str = br.readLine())!=null){//每读取一行文本,判断是否到文件末尾
bw.write(str);
bw.newLine();//写一个换行符,该方法会根据不同的操作系统生成相应的换行符
}
br.close();
bw.close();
}
10.演示拷贝文件,如何为文件加入行号
public class Test {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("test.txt");// 创建字符输入流
FileWriter fw = new FileWriter("copy.txt");// 创建字符输出流
LineNumberReader lr = new LineNumberReader(fr);// 包装
lr.setLineNumber(0);// 设置读取文件的起始行号
String line = null;
while ((line = lr.readLine()) != null) {
fw.write(lr.getLineNumber() + ":" + line);// 将行号写入到文件中
fw.write("\r\n");
}
lr.close();
fw.close();
}
}