黑马程序员——I/O流的常用基类
2015-07-04 10:42
381 查看
I/o的四个基类:
字节流常用抽象基类:InputStream,OutputStream字符流常用抽象基类:Reader,Writer
对于InputStream/Reader而言,他们把输入设备抽象成一个“水管”,这个“水管”里的每一个“水滴”就是一个输入流。
输入流使用隐式的记录指针来表示当前正准备从哪个“水滴”开始读取,每当程序从InputStream或Reader里读取一个或者多个“水滴”后,记录指针自动向后移动
对于OutputStream/Writer而言,他们同样把输入输出设备抽象成“水管”,只是这个水管里面没有任何水滴。当执行输出时,程序相当于一次把”水滴“放入到水管中,输出流采用隐式指针来标识当前水滴即将放入的位置,每当程序向OutputStream/Writer里输出一个或者多个水滴之后,记录将自动向后移动。
I/o流的所有类都是由这四个基类派生出来的由这四个类派生出来的子类名称都是以其父类名作为子类的后缀。
如:InputStream的子类FileInputStream
Reader的子类FileReader
字节流和字符流的对比:
字节流由字节组成,主要处理二进制数据,它是按字节来处理的流。我们日常处理的很多数据,都是文本,所以在字节流之外,又提出了字符流的概念,直接按照Java虚拟机的encode来处理,也就是在输出流和输入流之间 进行字符集的转换
字节流可以处理任何对象而字符流只能处理字符,字符串等。但是在处理字符对象时字符流更加方便。
I/o的四个基类都是抽象的所以在不能直接使用基类创建对象,需要使用这四个基类的子类来创建对象。
比如想要将一个文本的Test13的内容写入b.txt。就要借助字符流基类Reader的子类FileReader和Writer的子类FileWriter
代码事例:
通过Reader的子类和writer将Test13.java的内容copy到了b.txt中
相关文章推荐
- 技术面试请注意
- 黑马程序员----nil/Nil/NULL的区别
- 黑马程序员—易混淆的知识
- 近一个月的面试总结
- 近一个月的面试总结
- 【剑指Offer学习】【面试题34:丑数】
- 【剑指Offer学习】【面试题33:把数组排成最小的数】
- 【剑指Offer学习】【面试题32:求从1到n的整数中1出现的次数】
- 《Java面试试题》写一个两个线程之间的死锁
- 2015070308 - 职场学习
- 黑马程序员----java中的多线程基础
- 2015年7月VIP内推前端工程师面试经历
- 程序员面试最重要注意哪些?
- IOS 面试题(三)
- IOS 面试题(四)
- 黑马程序员----OC学习之继承
- 多线程笔试面试总结(一)
- 黑马程序员——Java基础---线程的另一个总结(4)--线程通信(互斥),线程范围的共享变量
- 2015_06月底面试问题总结
- 程序员的道法术器势