使用条件:当程序要读取磁盘数据。。。或从程序中获得数据。。。I/O流。


注意:使用完输入输出流后,调用关闭任何打开的流。原因之一是关闭输出流是把缓冲区内的内容冲洗掉。当操作系统把程序写入到输出流的那些字节保存在磁盘上之前,时常存储在内存缓冲区内,输出流调用close()方法。主要的写入方法是write()方法,读出方法是read()方法。


1、数据流:

DataInputStream类和 DataOutputStream 类创建的对象成为 数据输入流 和 数据输出流。读取数据时不关心数值应当是多少字节。

构造方法DataInputStream(InputStream in)将创建的数据输入流指向一个由参数in指定的输入流,以便后者读取数据,DataOutputStream(OutputStream out)将创建的数据输出流指向一个由参数out指定的输出流,然后通过这个数据输出流把java数据类型的数据写到输出流out。


2、文件字节流:


文件输入流:FileInputStream:是InputStream的子类。按照字节读取文件中的数据


文件输出流:FileOutputStream:是OutputStream的子类。write(byte b[])方法将b.length个字节到输出流。。。read同理。


3、文件字符流:


文件字符输入流:FileReader是Reader的子类,,,是按字符读取文件中的数据


int read()方法,若从输入流读取到一个字符,即返回以一个整数,未读取到则返回-1。


int read(char b[])方法,若从输入流中读取到b.length个字符到数组b中,返回实际读取的字符数目,否则返回-1。


文件字符输出流:FileWrite提供了基本的文件写入功能。。Write的子类。


4、缓冲流:


缓冲输入流:BufferedReader类。。底层流负责将数据读入到缓冲区内,BufferedReader流的源就是这个缓冲区,缓冲区输入流再从缓冲区内读出数据。FileReader无法读取整行的字符,为了实现,将BufferReader于FileReader连接,然后BufferReader就可以按行读取FileReader指向的文件。


FileReader inOne=new FileReader("Student.txt");


BufferReader inTwo=new BufferReader(inOne);


然后调用readLine()顺序读取到文件中的一行。利用flush()可以刷新缓冲区。


缓冲输出流:大致同上。


5、数组流:


字节输入流:ByteArrayInputStream


字节输出流:ByteArrayOutputStream


分别使用字节数组作为流的源和目标,可以从计算机内存中读取数据


6、字符串流:


StringReader使用字符串作为流的源 write()方法。。public String toString()方法返回输出流写入到缓冲区的全部字符,调用flush()方法可以刷新缓冲区。