如何在 Java 中从文件中读取整数

Java 是目前应用非常广泛的一种编程语言,其强大的文件操作功能为用户打开了一扇大门,可以轻松地从文件中读取各种数据。对于读取整数这类数据,使用 Java 也非常简单。接下来,我们将带您从头到尾详细了解如何在 Java 中从文件中读取整数。

文件读取流

首先,在 Java 中读取文件需要使用文件输入流(FileInputStream)类,该类主要提供了从文件读取数据的方法。在读取文件之前,我们必须创建一个文件输入流的对象实例。

FileInputStream fis = new FileInputStream("test.txt");

其中,FileInputStream 的构造函数需要传入文件路径作为参数,这里我们以”test.txt”文件为例,这个文件应该是存在的,否则会直接抛出 FileNotFoundException 异常。

读取整数

在创建好文件输入流后,我们就可以调用 read() 方法来读取整数。在 Java 中,读取整数的常用方法有两个,分别是 read() 和 readLine() 方法。

read() 方法的返回值为读取到的字节的 ascii 值,无法直接得到整数,因此需要将读取到的字节进行转换。

int value = fis.read() - '0';

这里的 ‘0’ 是字符 0 的 ascii 值,将它减去得到的就是实际数字的值。这里需要注意,如果读取到的是空格、回车、换行等不可见字符,那么需要额外进行处理。

readLine() 方法可以读取一行字符串,并将其转成数字。

Scanner sc = new Scanner(fis);
int value = sc.nextInt();

这里使用了 Scanner 类实例化一个对象,然后使用 nextInt() 方法获取整数。需要注意的是,如果文件中的数据并非整数,那么会导致出现 NoSuchElementException 异常。

关闭输入流

无论使用哪种方式读取数据,使用完毕后一定要关闭输入流,否则会导致文件被占用,无法进行其他操作。

fis.close();

完整示例

下面是一个完整的示例,根据文件中数字的个数,循环读取整数并输出。

import java.io.*;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
        int num = 0;
        int value;
        FileInputStream fis = new FileInputStream("test.txt");
        Scanner sc = new Scanner(fis);
        while (sc.hasNextInt()) {
            value = sc.nextInt();
            num++;
            System.out.println("第" + num + "个整数为:" + value);
        }
        fis.close();
    }
}

注意事项:

  1. 在 read() 方法中需要进行字符转换;
  2. 使用 Scanner 读取数据时需要注意文件中的数据类型与读取方式是否一致,否则会导致 NoSuchElementException 异常;
  3. 在读取完毕后一定要关闭文件输入流,否则会导致文件被占用。
  4. 需要注意文件路径的正确性,否则会导致 FileNotFoundException 异常。