java文件读写操作-字节流

时间:2022-07-01 21:02:00

java中主要有4个输入输出的抽象类,InputSteam、OutputStream、Reader和Writer。其中InputStream和OutputStream为字节流设计;Reader和Writer为字符流设计。FileInputStream继承自InputStream,FileOutputStream继承自OutputStream。

字节输入流

字节流InputStream类的常用方法如下:

int available():得到当前可读的输入字节数。注意返回值不能代表正在读取的目标的全部字节数,仅代表非阻塞可读取到的字节数,在读取网络文件资源的情况下尤其如此。

void close():关闭输入源。

read():读取数据,拥有以下3种多态方法。

        int read():读取单个字节的数据,返回的是一个整型数值,如果下一个字节可读,则返回一个整型,如果当前已到文件尾则返回-1.

        int read(byte buffername[]):从输入源中读取字节数组buffername的长度(buffername.length)的数个字节到buffername中,返回实际成功读取的字节数,如果已到文件尾则返回-1.

       int read(byte buffername,int offset,int len):从输入源中读取len长度的字节数据,并把数据在buffername字节数组中从offset下标位置开始存放,当已到文件尾时返回-1,如未到文件尾则返回实际读取的字节数。

long skip(long num):跳过指定个数的字节。

      FileInputStream类的所有方法均从InputStream类继承而来,可从文件读取字节。它的构造函数可生成FileInputStream类的对象,常用的有以下两种形式:

       FileInputStream(String filePath):根据文件路径创建文件输入流。

       FileInputStream(File fileObjectname):根据File对象创建文件输入流。

除FileInputStream之外,另一种更高效的以字节流方式读取文件的类是BufferInputStream。BufferInputStream继承自FilterInputStream,FilterInputStream也是InputStream的子类。创建BufferInputStream的构造方法也有以下两种形式。

     BufferInputStream(InputStream InputStreamName):根据InputStreamName代表的输入流创建实例,缓冲区大小采用默认值。

     BufferInputStream(InputStream InputStreamName,int BufferSize):根据InputStreamName代表的输入流创建实例,缓冲区大小指定为BufferSize。

    字节输出流

字节输出流OutoutStream类的常用方法如下所示:

void close():关闭输出流。

void flush():刷新输出缓冲区,即把缓冲区中的数据持久化到文件中,并清空缓冲区。

write():写入数据。此方法拥有以下3中形式的多态方法:

         void write(int b):向输出流写入一个字节。要写入的字节是参数b的8个低位。b的24个高纬被忽略。

         void write(byte buffername[]):将字节数组buffername中的全部数据写入文件输出流。

        void write(byte buffername[],int offset,int len):将字节数组buffername从offset指示的偏移位置后面的len个字节写入文件输出流。

FileOutputStream类的所有方法均从OutputStream类继承而来,可向文件中写入字节。它的构造函数可生成FileOutputStream类的对象,常用的有4种形式。

        FileOutputStream(String filepath):根据文件路径创建文件输出流。

       FileOutputStream(String filePath,boolean append):根据文件路径创建文件输出流,append参数决定是否追加内容到原内容之后。

       FileOutputStream(File fileObjectName):根据File对象创建文件输出流。

       FileOutputStream(File fileObjectName,boolean append):根据File对象创建文件输出流,append参数决定是否追加内容到原内容之后。