Java中的输入与输出流详解(2)

字节流是以字节为单位进行读写数据的。InputStream和OutputStream类分别是字节输入流类和字节输出流类的抽象超类,包括了字节输入和输出的所有方法。

1)、通过字节流读写数据

Java中所有有关输入和输出的类都是从InputStream类和OutputStream类继承的。因为InputStream类和OutputStream类都是抽象的,仅提供了基本的函数类型,没有具体实现,所以不能直接生成对象。要通过其子类来生成所需的对象,同时必须重写InputStream类和OutputStream类中的方法。InputStream类时字节输入流类的超类,描述了所有字节输入的方法。下面是InputStream的主要方法。

>int read():从输入流中读取下一个字节,并以int类型返回。返回值的取值范围为0~255,若遇到输入流的末尾则返回-1。下面是对read()方法的重写:

>int read(byte b[]):从输入流中读取长度为b.length的字节到b中,并返回本次读取的字节流。如果遇到输入流的末尾则返回-1.

>int read(byte b[] , int off , intlen):与上面不同的是读取长度为len的字节,写入b从下标off开始的位置。

>void close():关闭当前的输入流,同时释放相关的系统资源。

>int available():返回当前输入流中可读取的字节数。

OutputStream是字节输出流类的超类,描述了所有字节输出的方法。下面是OutputStream的主要方法:

>void write(int b):将制定的字节b作为数据写入输出流。该方法的属性的abstract,因此必须在子类中实现。下面是对其的重写:

>voidwrite(byte b[]):将字节数组b中长度为b.length个字节的数据写入;

>void wirte(byte b[] , int off , intlen):将b中下标off开始的长度为len个字节的数据写入输出流。

>flush():刷新输出流;

>close():关闭当前的输出流,同时释放相关的系统资源。

2)、FileInputStream类

FileInputStream类继承了InputStream类,它重写的父类中的所有方法。FileInputStream类用于进行文件的输入处理,其数据源和接受器都是文件。FileInputStream类的两个常用的构造函数为:

FileInputStream(StringfilePath)和FileInputStream(File fileObj)

下面的实例详细讲解了read方法:

public classmytest01 {
    public static void main(String[] args) {
        try {
            //创建一个FileInputStream对象
            FileInputStream file = newFileInputStream("D:\\桌面\\安卓开发工具\\学习笔记\\test.txt");
            while (file.available() > 0){       
                //调用read方法
                System.err.println((char)file.read());
            }
            file.close();
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/0717ce79f1828b16de0c05fb901ec02e.html