黑马程序员-江远云 我的java语言基础之路2-IO篇

---------------------- android培训java培训、期待与您交流! ----------------------


Propertise
是hashtable的子类,也就是说它具备map集合的特点,而且它里面存储的健值对都是字符串,是集合中和IO技术相结合的集合容器,这对象可以用于键值对形式的配置文件。
Propertise可以从流中加载键值对信息,涉及到IO都会有异常,想要将文件存入集合中,先用一个流跟所要的文件,一行一行读取,左边作为键,右边作为值


PrintWriter
打映流的意思,特点是为其他输出流添加了功能,这哥们提供了打映方法,可以将各种数据类型都原样打映。
PrintStream是字节打映,字节打映在操作的时候可以直接操作文件,凡是跟流操作都是比较重要的对象,构造函数可以接收的参数类型,可用字符串
PrintWiter,文件对象,字符串路径,字节输出流,字符输出流


管道流
读和写都有,作用是流读取流和写入流经常都有关系,什么时候可以使用,中间要有中转站,而到了管道流,它两就可以接上,一边写,另一边就可以接到,这就是管道流。
那谁先执行呢?读的先执行,还是写的先执行,管道输入流应该连接到管道输出流,不建议对这管道使用单线程,因为可以会阻塞。
只要没读到数据,线程就还在等待,录入的时候会唤醒,多线程没有就等到,这是涉及到多线程的IO对象。
要么构造方法,要么方法,管道流示例,我们要加入多线程技术,创建多线程给它一个管道就行了


字符编码
编码其实就是把数据进行转换,把看不懂的变成看懂的,字节是最小单位,字符串变字节数组是编码,解码是字节数组变字符串,用的方法是String变byte[],str.getBytes();,new String


字符读取流缓冲区:
该缓冲区提供了一个一次读一行的方法 readLine,方便于对文本数据的获取。
当返回null时,表示读到文件末尾。
readLine方法返回的时候只返回回车符之前的数据内容。并不返回回车符。


//创建一个读取流对象和文件相关联。


FileReader ff = new FileReader("bbb.txt");


//为了提高效率。加入缓冲技术。将字符读取流对象作为参数传递给缓冲对象的构造函数。


BufferedReader bufr = new BufferedReader(ff);

缓冲区的出现是为了提高流的操作效率而出现的。


所以在创建缓冲区之前,必须要先有流对象。


该缓冲区中提供了一个跨平台的换行符。
newLine();


装饰与继承
MyReader//用于读取数据的类。
|--MyTextReader
|--MyBufferTextReader
|--MyMediaReader
|--MyBufferMediaReader
|--MyDataReader
|--MyBufferDataReader


class MyBufferReader extends MyReader
{
private MyReader r;
MyBufferReader(MyReader r)
{}
}




MyReader//专门用于读取数据的类。
|--MyTextReader
|--MyMediaReader
|--MyDataReader
|--MyBufferReader


通过继承子类可具备缓冲功能,但复杂,不利扩展性


可通过谁需要被缓冲,谁就作为参数传递给缓冲区。
这样继承体系就变得很简单。优化了体系结构。




装饰模式比继承要灵活。避免了继承体系臃肿。
而且降低了类于类之间的关系。


装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强功能。
所以装饰类和被装饰类通常是都属于一个体系中的。



---------------------- android培训java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值