第19天-01-IO流(BufferedWriter) 字符流的缓冲区 缓冲区的出现提高了对数据的读写效率. 对应类缓冲区要结合流才可以使用. BufferedWriter BufferedReader 在流的基础上对流的功能进行了增强. import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; /* 缓冲区是为了提高流的操作效率而出现的, 所以在创建缓冲区之前,必须要先有流对象.…
第19天-06-IO流(装饰设计模式) 装饰设计模式: 当想要对已有的对象进行功能增强时, 可以定义类,将已有对象传入,基于已有的功能,并提供加强功能.那么这个自定义的类称为装饰类. 装饰类通常会通过构造方法接收被装饰的对象. 并基于被装饰的对象的功能,提供更强的功能. 第19天-07-IO流(装饰和继承的区别) MyReader //专门用于读取数据的类 |----MyTextReader |----MyMediaReader |----MyDataReader |____MyBufferRe…
第19天-11-IO流(字节流File读写操作) import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* 字符流 Reader/Writer FileReader/FileWriter BufferedReader/BufferedWriter 字节流: InputStream/OutputStream FileInputStream/FileOutputStr…
第19天-20-IO流(改变标准输入输出设备) static void setIn(InputStream in) Reassigns the "standard" input stream. static void setOut(PrintStream out) Reassigns the "standard" output stream. package bxd; import java.io.*; public class TransStreamDemo3 {…
第19天-18-IO流(流操作规律 - 1) 通过三个步骤来明确"流操作"的规律: 明确数据流的"源和目的" 源, 输入流: InputStream/Reader 目的, 输出流: OutputStream/Writer 明确操作的数据是否是纯文本 是, 字符流 不是, 字节流 通过设备来区分要使用哪个具体的类 源设备: 内存/硬盘/键盘 目的设备: 内存/硬盘/控制台 附录 是否需要进行缓冲: BufferedReader bufr = new BufferedR…
第19天-15-IO流(读取键盘录入) InputStreamReader是字节流通向字符流的桥梁,它使用指定的charset读取字节并将其解码为字符.它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集.每次调用InputStreamReader中的一个read()方法都会导致从底层输入流读取一个或多个字节.要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节. 为了达到最高效率,可考虑使用BufferedReader:Buffere…
第20天-07-IO流(递归) package bxd; import java.io.File; public class FileDemo3 { // 非递归打印 public static void showDir_1(File dir) { File[] files = dir.listFiles(); for (File file : files) { System.out.println(file); } } // 递归打印 public static void showDir_2(…
第21天-01-IO流(对象的序列化) ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable接口(标记接口) 非必须, 但强烈建议所有可序列化类都显式声明serialVersionUID package bxd; import java.io.*; public class ObjectStreamDemo { public static void readObj() throws Exception { ObjectInputS…
第20天-15-IO流(打印输出流) 打印输出流:PrintWriter与PrintStream 两者的区别:Since JDK 1.4 it's possible to specify the character encoding for a PrintStream. Thus, the differences between PrintStream and PrintWriter are only about auto flushing behavior and that a PrintSt…
第20天-11-IO流(Properties简述) .properties是一种主要在Java相关技术中用来存储应用程序的可配置参数的文件的文件扩展名.它们也可以存储用于国际化和本地化的字符串,这种文件被称为属性资源包(Property Resource Bundles). 第20天-12-IO流(Properties存取) package bxd; import java.io.IOException; import java.util.Properties; import java.util…