一, BufferedWriter
1. Carácter leer y escribir se puso a prueba con un tampón
Paquete com.bjpowernode.java_learning; Importación del java.io. * ; pública clase D100_1_BufferedWriter { públicas estáticas vacíos principales (args String []) lanza la excepción { // crear el flujo de salida de caracteres con tampón de dirección de cadena = "C: \ \\\ Usuarios \\\\ lenovo1 \\\\ \\\\ áreas de trabajo MyEclipse CI \\\\ \\\\ java_learning src \\\\ \\\\ com bjpowernode \\\\ \\\\ java_learning Temp1 .txt " ; BufferedWriter BW = nuevo nuevo BufferedWriter ( nuevo nuevo FileWriter (dirección)); // o así escrita de la siguiente //BW = new nueva BufferedWriter, BufferedWriter, (el OutputStreamWriter (nuevo nuevo un FileOutputStream (dirección, true))); // empezar a escribir bw.write ( "jdfoishjfuji" ); // escribir un separador de línea bw.newLine (); bw.write ( " esta es una oración de prueba " ); // actualización bw.flush (); // estrecha bw.close (); // uso BufferedReader y BufferedWriter para completar la copia address2 cadena =" C: \\\\ \\\ los usuarios \ lenovo1 áreas de trabajo \\\\ \\\\ \\\\ java_learning MyEclipse CI COM \\\\ \\\\ \\\\ src java_learning bjpowernode \\\\ \\\\ temp2.txt " ; BufferedReader br = nueva nueva BufferedReader ( nuevo nuevoFileReader (dirección)); BufferedWriter bw2 = nuevo BufferedWriter ( nuevo FileWriter (address2)); Cadena temp = nulo ; mientras que ((temp = br.readLine ()) =! nula ) { bw2.write (temp); bw2.newLine (); } Bw2.flush (); br.close (); bw2.close (); } }
En segundo lugar, el patrón decorador
1. En primer lugar dar un ejemplo sencillo
Para M1 A100 método en esta clase, queremos ampliar, de una manera sencilla podemos pensar es crear una nueva clase B100, vuelva a grabar método
Pero esta asociación escribió demasiado fuerte, también es posible utilizar otros métodos --- Decorator
2. Toma nota
(1) patrón decorador requerido: decorador contiene referencia en decorador
(2) el patrón decorador requerido: decorador debe ser decorado y uno y el mismo tipo
empaquetar com.bjpowernode.java_learning; pública clase D100_2_DecoratorMode { públicas estáticas void main (String [] args) lanza la excepción { A100 un = nuevo A100 (); B100 b = nuevo B100 (); a.m1 (); b.m1 (); System.out.println ( "=============" ); // 1.创建被装饰者 FileReader fr = nuevo FileReader (); // 2.创建装饰者 BufferedReader br = nuevo BufferedReader (fr); //3. El enfoque indirecto es llevar a cabo la decoración por los decoradores que realizan quienes método br.close (); } } clase ALOO { público vacío M1 () { System.out.println ( "M1" ); } } clase Bloo la extiende ALOO { público vacío M1 () { super .M1 (); System.out.println ( "sobrescrito" ); } } // utiliza para cerrar método BufferedReader FileReader de expansión de la clase BufferedReader la extiende parent100 { // BufferedReader100 es un decorador // relación lector FileReader;// FileReader debe ser decorado por // Constructor del BufferedReader (FileReader lector) { el presente .reader = lector; } // para el método de cierre de FileReader expandió pública vacío close () { // extendida System.out.println ( " código de expansión 1 " ); reader.Close (); System.out.println ( " código de expansión 2 " ); } } la clase del FileReader la extiende parent100 { público vacío Close () { System.out.println ( " guanbi " ); } } abstracta de claseparent100 { pública abstracta vacío close (); }
En tercer lugar, el código fuente:
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. Parque blog: https: //www.cnblogs.com/ruigege0000/
4. aprecia la importancia número público de micro-canales: la transformada de Fourier número personal público, sólo para los intercambios de aprendizaje, entre bastidores respuesta "regalos" para obtener grandes volúmenes de datos materiales de aprendizaje