欢迎访问宙启技术站
智能推送

Java中的FileInputStream方法:read()

发布时间:2023-06-13 04:54:04

Java中的FileInputStream类是一个输入流,它用于从文件中读取数据。FileInputStream类提供了多个读取方法,其中最常用的是read()方法。

read()方法是FileInputStream类中最基本的读取方法之一,它可以读取一个字节并返回它的整数表示。如果返回值为-1,则表示已经读取到文件的结尾。

使用read()方法读取文件的基本流程如下:

1. 创建一个FileInputStream对象,指定要读取的文件路径。

2. 根据需要定义一个byte数组来存放读取的数据。

3. 使用read()方法循环读取文件中的数据,每次读取一个字节,直到读取完全部数据。如果读取到文件末尾,则返回-1。

4. 将读取的数据存入byte数组中,可以使用BufferedInputStream类来提高读取效率。

5. 关闭FileInputStream对象,释放与文件相关的资源。

下面是一个使用read()方法读取文件数据的示例代码:

import java.io.*;

public class ReadFileExample {
    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("example.txt");
            BufferedInputStream bis = new BufferedInputStream(fis);

            byte[] buffer = new byte[1024];
            int bytesRead = 0;

            while ((bytesRead = bis.read(buffer)) != -1) {
                System.out.write(buffer, 0, bytesRead);
            }

            bis.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先创建了一个FileInputStream对象fis,并指定要读取的文件为example.txt。然后创建了一个BufferedInputStream对象bis,用于提高读取效率。接下来定义了一个byte数组buffer,用于存储每次读取的数据。最后使用while循环读取文件中的数据,并将读取到的数据输出到控制台。

注意,在上面的代码中,我们使用了BufferedInputStream类来提高读取效率。如果不使用缓冲区,读取文件的效率将会非常低下。

使用FileInputStream类的read()方法可以读取文件中的数据,但是它只能读取一个字节。如果需要读取多个字节,可以使用read(byte[] b)方法。此外,FileInputStream类还提供了read(byte[] b, int off, int len)方法,用于读取部分数据。