一、BufferedWriter 1.使用帶有緩衝區的字元讀和寫進行試驗 package com.bjpowernode.java_learning; import java.io.*; public class D100_1_BufferedWriter { public static voi ...
一、BufferedWriter
1.使用帶有緩衝區的字元讀和寫進行試驗
package com.bjpowernode.java_learning; import java.io.*; public class D100_1_BufferedWriter { public static void main(String[] args) throws Exception{ //創建帶有緩衝區的字元輸出流 String address = "C:\\\\Users\\\\lenovo1\\\\Workspaces\\\\MyEclipse CI\\\\Java_learning\\\\src\\\\com\\\\bjpowernode\\\\java_learning\\\\temp1.txt"; BufferedWriter bw = new BufferedWriter(new FileWriter(address)); //或者如下這麼寫 //BufferedWriter bw = new BufferedWriter(OutputStreamWriter(new FileOutputStream(address,true))); //開始寫 bw.write("jdfoishjfuji"); //寫入一個行分隔符 bw.newLine(); bw.write("這是一個測試的語句"); //刷新 bw.flush(); //關閉 bw.close(); //使用BufferedReader和BufferedWriter來完成複製 String address2 = "C:\\\\Users\\\\lenovo1\\\\Workspaces\\\\MyEclipse CI\\\\Java_learning\\\\src\\\\com\\\\bjpowernode\\\\java_learning\\\\temp2.txt"; BufferedReader br = new BufferedReader(new FileReader(address)); BufferedWriter bw2 = new BufferedWriter(new FileWriter(address2)); String temp = null; while((temp=br.readLine())!=null) { bw2.write(temp); bw2.newLine(); } bw2.flush(); br.close(); bw2.close(); } }
二、裝飾者模式
1.先舉一個簡單的例子
對於A100這個類中的m1方法,我們想要擴展,我們可以想到的一個簡單的方法就是創建一個新類B100,然後重寫方法
但是這樣的關聯寫太強了,因此還可以使用使用其他方法---裝飾者模式
2.註意點
(1)裝飾者模式中要求:裝飾者中含有被裝飾者的引用
(2)裝飾者模式中要求:裝飾者和被裝飾者應該實現同一個類型
package com.bjpowernode.java_learning; public class D100_2_DecoratorMode { public static void main(String[] args) throws Exception{ A100 a = new A100(); B100 b = new B100(); a.m1(); b.m1(); System.out.println("============="); //1.創建被裝飾者 FileReader fr = new FileReader(); //2.創建裝飾者 BufferedReader br = new BufferedReader(fr); //3.通過執行裝飾者中的方法間接去執行被裝飾者中的方法 br.close(); } } class A100{ public void m1() { System.out.println("m1"); } } class B100 extends A100{ public void m1() { super.m1(); System.out.println("重寫了"); } } //使用BufferedReader對FileReader中的close方法進行擴展 class BufferedReader extends parent100{//BufferedReader100是裝飾者 //關聯關係 FileReader reader;//FileReader就是被裝飾者 //構造方法 BufferedReader(FileReader reader){ this.reader = reader; } //對FileReader中的close方法進行擴展 public void close() { //擴展 System.out.println("擴展代碼1"); reader.close(); System.out.println("擴展代碼2"); } } class FileReader extends parent100{ public void close() { System.out.println("guanbi"); } } abstract class parent100{ public abstract void close(); }
三、源碼:
D100_1_BufferedWriter.java
D100_2_DecoratorMode.java
https://github.com/ruigege66/Java/blob/master/D100_1_BufferedWriter.java
https://github.com/ruigege66/Java/blob/master/D100_2_DecoratorMode.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料