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

如何使用Java函数读取文件中的数据

发布时间:2023-05-23 10:47:10

在Java中,有多种方法可以读取文件中的数据,比如使用FileReader、BufferedReader、Scanner等类。下面分别介绍一下这些类的使用方法。

一、使用FileReader读取文件

FileReader是Java中用来读取字符型文件的类,是Reader的子类。使用FileReader需要以下步骤:

1. 创建一个FileReader对象,参数为文件的路径。

2. 读取文件内容,可以使用read()方法读取单个字符,也可以使用read(char[] cbuf)方法一次性读取多个字符,并将读取的内容存入char数组中。

3. 关闭FileReader对象。

示例代码如下:

public static void main(String[] args) throws IOException {
    FileReader reader = new FileReader("C:\\test.txt"); // 创建FileReader对象
    char[] buffer = new char[1024]; // 创建char数组缓存读取的字符
    int len; // 读取字符的实际长度
    while ((len = reader.read(buffer)) != -1) { // 判断是否读到文件末尾
        System.out.println(new String(buffer, 0, len)); // 将读取的内容转换成字符串并输出
    }
    reader.close(); // 关闭FileReader对象
}

二、使用BufferedReader读取文件

BufferedReader是Java中用来读取字符型文件的类,它继承自Reader类,提供了readLine()方法可以一次读取一行数据。使用BufferedReader类需要以下步骤:

1. 创建一个BufferedReader对象,参数为一个已有的Reader对象。

2. 使用readLine()方法读取文件内容,每次读取一行并返回一个字符串,如果已经到文件末尾,则返回null。

3. 关闭BufferedReader对象。

示例代码如下:

public static void main(String[] args) throws IOException {
    FileReader fileReader = new FileReader("C:\\test.txt"); // 创建FileReader对象
    BufferedReader reader = new BufferedReader(fileReader); // 创建BufferedReader对象
    String line = null; // 读取到的一行数据
    while ((line = reader.readLine()) != null) { // 判断是否读到了文件末尾
        System.out.println(line); // 输出读取到的一行数据
    }
    reader.close(); // 关闭BufferedReader对象
}

三、使用Scanner读取文件

Scanner是Java中的一个扫描器类,可以用来读取文件的数据。使用Scanner类需要以下步骤:

1. 创建一个Scanner对象,参数为文件的路径。

2. 使用hasNextLine()方法判断是否有下一行数据,如果有则使用nextLine()方法读取一行数据。

3. 关闭Scanner对象。

示例代码如下:

public static void main(String[] args) throws IOException {
    Scanner scanner = new Scanner(new FileInputStream("C:\\test.txt")); // 创建Scanner对象
    while (scanner.hasNextLine()) { // 判断是否有下一行
        System.out.println(scanner.nextLine()); // 输出该行数据
    }
    scanner.close(); // 关闭Scanner对象
}

总体上来说,使用Java函数读取文件数据的方法有很多,我们可以根据实际情况选择合适的方法。如果我们只需要读取文件的内容,则使用BufferedReader类是最方便的,如果需要对每段内容进行处理,则使用Scanner较为方便,如果需要读取二进制文件,则需要使用InputStream等输入流类。