IO流简介

来源:互联网 发布:淘宝联盟怎么样提现 编辑:程序博客网 时间:2024/04/28 01:12

IO流学习总结:

一、IO流的概念:

       源于unix中的管道(pipe)的概念,管道是一条不间断的字符流,用来实现程序或进程间的通信,或读写外部设备,外部文件等。一个流必须有源端和目的端,它们是计算机内存的某些区域,也可是磁盘文件,甚至是internet的上的某个url。

二、IO流的分类:

按照数据流向可分为:输入流、输出流

按照处理数据的大小:字节流、字符流

按照实现数据的功能:节点流、处理流


输出流和输入流都是从程序的角度来说的; 


字节流:一次读入或读出数据的单位是: 8位的二进制

字符流:一次读入或读出数据的单位是:16位的二进制

字节流和字符流的原理相同,只是他们独处和读入的单位不一样。字节流的后缀名是:Stream 而字符流的后缀名是Writer和Reader.


直接使用节点流,读写不方面,为了更快的读写文件,才有了处理流。

处理流:与节点流一块使用,在节点流的基础上,再套接一层,套接在接口上的就是处理流。

三、IO流的操作规律总结

1、明确体系:

数据源:IuputStream, Reader

数据汇:OutputStream,Writer

2、明确数据:因为数据分为两种:字节和字符

数据源:是纯文本吗

是:Reader

否:IuputStream

数据汇:

是:Writer

否:OutputStream

到这里时我们已经明确具体使用哪一种体系了,剩下的就是明确使用哪个对象了。

3、明确设备:

数据源:

键盘:System.in

硬盘:Filexxx

内存:Array【】

网络:socket  socket.getinputStream();

数据汇:

控制台:System.out

硬盘:Filexxx

内存:Array【】

网络:socket socket.getoutputStream();

4、明确额外功能:

需要转换吗  是,使用转换流。InputStreamReader   OutputStreamWriter

需要高效吗  是,使用缓冲区。Buffered

需要其他吗

----------------------------------------------------------------------------------------------------------------

目前为止,10个流对象重点掌握的有:

字符流:

FileReader

FileWriter 


BufferedReader

BufferedWriter


InputStreamReader

OutputStreamWriter

字符流:

FileInputStream

FileOutputStream


BufferedInputStream

BufferedOutputStream

IO中的其他功能流对象:

四、IO流其他
1,打印流:
PrintStream:字节打印流。
特点:
1,构造函数接收File对象,字符串路径,字节输出流。意味着打印目的可以有很多。
2,该对象具备特有的方法 打印方法 print println,可以打印任何类型的数据。
3,特有的print方法可以保持任意类型数据表现形式的原样性,将数据输出到目的地。
对于OutputStream父类中的write,是将数据的最低字节写出去。

PrintWriter:字符打印流。
特点:
1,当操作的数据是字符时,可以选择PrintWriter,比PrintStream要方便。
2,它的构造函数可以接收 File对象,字符串路径,字节输出流,字符输出流。
3,构造函数中,如果参数是输出流,那么可以通过指定另一个参数true完成自动刷新,该true对println方法有效。


什么时候用?
当需要保证数据表现的原样性时,就可以使用打印流的打印方法来完成,这样更为方便。
保证原样性的原理:其实就是将数据变成字符串,在进行写入操作。




 


0 0
原创粉丝点击