一、JAVAI/O

I/OInputOutputI/O流实现设备之间的数据传输。

二、I/O流的分类

按照数据的流向可以分为输入流和输出流。

        输入流是指java程序从其他设备读取数据,输入流的方法大都是读(read)的方法;输出流是指java程序向其他设备写入数据,输出流的方法大都是写(write)的方法。

按照操作的文件类型,可以分为字节流和字符流。

        字节流每次操作文件中的一个字节,可以读写任意类型的文件;字符流每次操作文件中的一个字符,只能读写文本文件。

常用的I/O流的java类可以用下图表示:


JAVA的I/O流


A、字节输入流(InputStream)是所有字节输入流的抽象基类,常用的直接或间接继承该类的子类有FileInputStreamBufferedInputStream,后者为高效输入流。

        InputStream常用的方法有以下几个:

        ①read(),返回值为int型。该方法从输入流中读取下一个字节,返回下一个数据字节;当读取到输入流末尾时返回-1(即返回-1表示读取结束) 。

        ②read(byte[] b),返回值为int类型。该方法从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b ,返回值为数组的有效长度。

        ③close(),返回值void。该方法关闭此输入流,释放资源。

B、字节输出流(OutputStream)是所有字节输出流的抽象基类,常用的直接或间接继承该类的子类有FileOutputStreamBufferedOutputStream,后者为高效输入流。

        OutputStream常用的方法有以下几个:

        ①write(int b),返回值为void。该方法将指定的字节写入此输出流 。

        ②write(byte[] b),返回值为void。该方法将 b.length 个字节从指定的 byte 数组写入此输出流。

        ③write(byte[] b,int off,int len),返回值void该方法将 byte数组中从off索引开始的len字节写入此输出流。

        ④close(),返回值void。该方法关闭此输出流,释放资源。

C、字符输入流(Reader)是所有字符输入流的抽象基类,常用的直接或间接继承该类的子类有FileReader(继承InputStreamReader,InputStreamReader继承Reader)和BufferedReader,后者为高效输入流。

        Reader常用的方法有以下几个:

        ①read(),返回值为int类型。该方法读取单个字符,如果返回值为-1,表示读取结束。

        ②close(),返回值为void。该方法关闭此输入流,释放资源。

        ③BufferedReader特有的方法----readLine(),返回值String类型。该方法读取一个文本行,返回值为该行的内容,读取到换行符认为该行终止(不会存取换行符),如果返回值为null,表示读取结束。

D、字符输出流(Writer)是所有字符输出流的抽象基类,常用的直接或间接继承该类的子类有FileWriter(继承OutputStreamWriter,OutputStreamWriter继承Writer)和      BufferedWriter,后者为高效输出流。

        Writer常用的方法有以下几个:

        ① write(int b),返回值为void。该方法写入单个指定的字符b。

        ②write(char[ ] c),返回值为void。该方法写入单个指定的字符数组。

        ③write(char[ ] c),返回值为void。该方法写入单个指定的字符数组。

        ④write(char[ ] c,int off, int len),返回值为void。该方法将 char数组中从off索引开始的len个字节写入此输出流。

        ⑤write(String s),返回值为void。该方法可以写入字符串。

        ⑥flush(),返回值为void。该方法刷新该流的缓冲区。建议使用Writer写一次刷新一次。

        ⑦close(),返回值void。该方法关闭此输出流,释放资源。

        ⑧BufferedWriter特有的方法----newLine(),写入一个行分隔符,返回值为void。行分隔符字符串由系统属性 line.separator 定义,并且不一定是单个新行 ('\n') 符。

 

相关文章: