您的位置:首页 > 编程语言 > Java开发

Java-6-IO

2015-08-22 11:02 274 查看
Ø 课堂讨论要点:



1. 文件的概念

a. 狭义文件

磁盘的具体文件

目录是一种特殊的文件,目录其实是一个文本文件,其中包含了这个目录下所有文件的信息。



b. 广义文件概念

任何非CPU的介质和外设,我们都可以称其为文件,和其通讯。

比如:显示器,打印机,扫描仪等。



2. 基于流的IO操作



底层IO操作是复杂的,涉及到大量硬件环节,比如磁盘存储,涉及到磁道、扇面等非常底层的信息, 比如网络通讯,则涉及到TCP/IP非常复杂的内容。



为了掩盖这些复杂的底层信息,让程序员能够从事更加高层的业务编程,J***A语言用了流I/O模式来掩盖了底层实现细节,同时编制了大量底层类,把底层概念已经封装完毕。



我们要做的就是用流I/O框架来思考,用流I/O的库来编程,最终这些信息将通过J***A的原生底层库转化成具体的硬件操作。



a. 预先默认打开的两个流



System.out 标准输出流 绑定的文件:显示器

System.in 标准输入流 绑定的文件: 键盘



以CPU为参照物,来决定是输入流(InputStream), 还是输出流(OutputStream)



b. 流的类型

1) 字节流,二进制流 (binary stream)

优点:可以传送传送任何数据,而不丢失,速度极快!

缺点:如果传送文字信息,则可读性太差,人工阅读困难。

任何java流在初始阶段都是二进制流。



二进制流在命名上一般叫 xxxInputStream, xxxOutputStream.



2) 字符流 (character stream)

有些流里头传送的是字符数据,建议把这样的流在进入CPU前做一个格式转化,把其转成字符流,以提高CPU处理的效率。



二进制流到字符流的转化



二进制流每16个bit为一个单位划转,系统会把其理解称为unicode编码数字,并对应一个字符。



字符流的命名上一般叫xxxReader, xxxWriter .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: