如何在 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();
}
}
注意事项:
- 在 read() 方法中需要进行字符转换;
- 使用 Scanner 读取数据时需要注意文件中的数据类型与读取方式是否一致,否则会导致 NoSuchElementException 异常;
- 在读取完毕后一定要关闭文件输入流,否则会导致文件被占用。
- 需要注意文件路径的正确性,否则会导致 FileNotFoundException 异常。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。