首页 > 代码库 > 流操作

流操作

  我们经常需要从文件中读取数据,或者储存数据进文件。在java中,将一个对象(可以读入一个字节序列)称作为输入流,将一个对象(可以向其中写入一个字节序列)称作为输出流。在java中,流操作的基础是抽象类InputStream和OutputStream.

  InputStream类中有一个抽象方法:

abstract int read();

  这个抽象方法的目的是从输入流中读取数据的下一个字节。在继承这个类时,必须实现这个方法。

  OutputStream类:

abstract void write(int b);

  将指定的字节写入到输出流。

  例如,FileInputStream继承InputStream,从文件中的读取字节。但是它只能读取字节和字节数组。如果需要做其它相关的操作,例如从文件中读取java数据类型,例如DataInputStream,这个类的方法可以从流中读取几个字节,解释为你所需要类型的数据。但是它不能从文件中直接读取数据,它需要在读取数据的类的基础之上进行。

  java设计了这样的一种机制:首先需要诸如FileInputStream或者URL类中的openStream方法返回的输入流等等,这种可以在文件中获取字节的输入流,然后在此基础上,构建诸如DataInputStream和PrintWriter等类型将字节组装成为更有用的数据类型,它们在原声字节流之上添加了额外的功能。此外,如果想要添加缓存功能,还可以再加上BufferedInputStream。例如:

FileInputStream fin = new FileInputStream("xx.txt");
DataInputStream din = new DataInputStream(fin);
BufferedInputStream bin = new BufferedInputStream(din);

  

流操作