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

使用Java中的FileInputStream函数读取文件

发布时间:2023-06-19 16:49:58

Java中的FileInputStream函数是一种用于读取文件的基本输入流。它提供了一种逐字节读取文件内容的方法,可以读取二进制文件数据或文本文件内容,并且不需要事先知道文件的大小。

使用FileInputStream函数读取文件的具体步骤如下:

1. 创建FileInputStream对象。这需要指定要读取的文件路径和文件名。

2. 声明一个数组作为缓冲区,用于读取和存储读取的数据。

3. 使用read()方法读取文件内容,并将结果存储在缓冲区中。该方法的返回值为读取的字节数,如果已经到达文件末尾,则返回-1。

4. 关闭FileInputStream对象,释放系统资源。

下面是一个简单的例子,演示了如何使用FileInputStream函数读取文本文件的内容:

import java.io.*;

public class ReadFileExample {

  public static void main(String[] args) {

    try {

      FileInputStream inputStream = new FileInputStream("example.txt");

      

      byte[] buffer = new byte[1024];

      int bytesRead = 0;

      

      while ((bytesRead = inputStream.read(buffer)) != -1) {

        String content = new String(buffer, 0, bytesRead);

        System.out.print(content);

      }

      

      inputStream.close();

    } catch (FileNotFoundException e) {

      System.out.println("File not found.");

    } catch (IOException e) {

      System.out.println("Error reading file.");

    }

  }

}

在该例子中,我们使用FileInputStream函数打开名为example.txt的文本文件,并定义一个大小为1024字节的缓冲区。然后使用while循环读取文件内容,每次从文件中读取的字节数保存在bytesRead变量中,并将缓冲区中的字节数组转为字符串类型,输出到控制台。最后在关闭FileInputStream对象之前,我们必须显式调用close()方法释放文件资源。

需要注意的是,在使用FileInputStream函数进行文件读取时,如果读取的文本文件内容包含了非ASCII字符,我们需要使用其他编码方式来读取,例如UTF-8编码。此时,我们可以使用InputStreamReader类将FileInputStream对象转化为字符流,再使用BufferedReader类读取文件。具体代码如下:

import java.io.*;

public class ReadFileExample2 {

  public static void main(String[] args) {

    try {

      FileInputStream inputStream = new FileInputStream("example.txt");

      InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");

      BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

      

      String line;

      while ((line = bufferedReader.readLine()) != null) {

        System.out.println(line);

      }

      

      bufferedReader.close();

      inputStreamReader.close();

      inputStream.close();

    } catch (FileNotFoundException e) {

      System.out.println("File not found.");

    } catch (IOException e) {

      System.out.println("Error reading file.");

    }

  }

}

该例子中,我们使用FileInputStream函数打开名为example.txt的文本文件,并使用InputStreamReader函数将FileInputStream对象转化为字符流。接着我们定义了一个BufferedReader对象,并调用其readLine()方法逐行读取文件内容,输出到控制台。最后在关闭BufferedReader、InputStreamReader和FileInputStream对象之前,我们同样要显式调用close()方法以释放资源。

总结来说,使用Java中的FileInputStream函数读取文件是一种非常基础和常见的操作。需要注意的是,在读取文本文件时,需要指定正确的编码方式,否则可能会导致乱码或读取失败的问题。同时,在读取后必须关闭FileInputStream对象,以释放文件的资源。