IO流基本框架
IO流即输入和输出流,输入输出技术用于设备之间的数据传输。在程序中,具体以内存为对象,将外部数据读取到内存中,即是输入,从内存中输出到其他设备如磁盘,等存储设备中,称为输出。根据数据输出的方向分为了输入和输出,若根据处理数据的单位则可以分为字节流和字符流。
字节流即以字节来进行I/O操作,字符流即以字符来进行I/O操作。
在Java里面,InputStream和Reafer是输入流中的基类,OutputStream和Writer是所以输出流的基类。其中InputStream和OutputStream它们是字节流的抽象父类,而Reader和Writer则是字符流的抽象父类。
下面主要讲解常用的两个输入和输出的类:FileInputStream和FileOutputStream。
FileOutputStream
FileInputStream是InputStream的子类,InputStream类中提供了一系列的方法:
int write()
int write(byte[] b)
int write(byte[] b,int off,int len)
public void flush() throws IOExcetion
public void close()throws IOException
等等方法,作为InputStream的子类,自然而然可以使用这些方法。
下面通过代码一一演示这些方法。
FileOutputStreamReader
OutputStream类与InputStream类一样中提供了一系列的方法。FileOutputStream同样可以使用这些方法。
int read()
int read(byte[] b)
int read(byte[] b,int off,int len)
public void close() throws IOException
可以看到FileOutputStream类与 FileOutputStream类他们的方法好像是一样的。也就是字母不同,一个输出一个输入。
在Java中输入和输出本来就是相对对称的。对于我们而言。学会了 FileOutputStream类的用法,就可以触类旁通的使用其他输入和输出的类。
Reader
它的子类是FileReader。可以知道它们的命名都是十分规律的。Reader类中的方法如下:
int read()
int read(char[] cbur)
int read(char[] cbur,int off,int len)
public void close()throws IOException
作为输入流,可以看到Reader与InputStream这两个类的方法十分相似。
Writer
void writer(int c)
void writer ()char[] cbur,cbur)
void writer (char[] cbur,int off,int len)
void write (String str)
void writer (String str,int off,int len)
void flush()
public void close() throwsIOException
与输出流一样,方法之间极其相似。
对于我们来说学会一个就能触类旁通。