输入与输出,
2016-11-16 08:40 backyyan 阅读(209) 评论(0) 编辑 收藏 举报流是一个抽像概念,可以理解为输入与输出的途径。在java库类中,I/O部分的内容是很庞大的,有标准输入/输出、文件的操作。网络上的数据流、字符串流、对象流等。
当程序需要读取数据时,就会开通一个通向数据源的流,这个数据源可以使文件、内存、或网络连接。类似的,当程序需要写入数据时,就会开启一个通向目的地的流。
流的概念
流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,,java把这些不同来源和目标的数据都统一抽像为数据流。流序列中的数据可以是没有进行加工的原始数据(二进制字节数据),也可以是经过编码的符合某种格式的数据。java中的流分两种:一种是字节流,另一种是字符流,分别由4个抽象类来表示(每种流包括输入和输出两种,所以一共四个):InputStream、OutputStream、Reader和Writer。java中其他多样变化的流均是由它们派生出来的。
FileInputStream
PipedInputStream [LineNumberInputStream
FilterInputStream--------------[DataInputStream
InputStream ByteArrayInputStream [BufferedInputStream
SequenceInputStream [PushbckInputStream
StringBufferInputStream
ObjectInputStream
FileOutputStream
PipedOutputStream [DataOutputStream
OutputStream FilterOutputStream--------[BufferedOutputStream
ByteArrayOutputStream [PrintStream
ObjectOutputStream
BufferedReader----------LineNumberReader
CharArrayReader
Reader InputStreamReader---FileReader
FilterReader------------PushbackReader
PipedReader
StringReader
BufferedWriter
CharArrayWriter
OutputStreamReader---FileWriter
Writer FilterWriter
PipedWriter
StringWriter
FilterWriter
其中InputStream和OutputStream在早期的java版本就已经存在了,它们是基于字节流的,而基于字符流的Reader和Writer是后来加入作为补充的。
流可分为两类:输入流和输出流。用户可以从输入流中读取信息,但不能写它。相反,输出流,只能往其中写,而不能读它。
1:输入流
输入流的信息源可以位于文件、内存、网络套接字等地方,信息员的类型可以包括对象,字符,图像,声音在内的任何类型。一旦打开输入流之后,程序就可从输入流串行读取数据。(如上图所示)
2:输出流
输出流和输入流相似,程序也能通过打开一个输出流并顺序的写入数据,将信息送至目的端。