使用条件:当程序要读取磁盘数据。。。或从程序中获得数据。。。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()方法可以刷新缓冲区。