如何使用 Scanner 类读取文件内容?

java 8object oriented programmingprogramming更新于 2025/9/20 0:12:17

从 Java 1.5 开始引入了 Scanner 类。该类接受 File、InputStream、Path 和 String 对象,并使用正则表达式逐个读取所有原始数据类型和字符串(来自给定的源)。默认情况下,空格被视为分隔符(将数据拆分为标记)。

使用此类提供的 nextXXX() 方法从源读取各种数据类型。

读取文件内容 −

为了读取文件内容,Scanner 类提供了各种构造函数。

Sr.No
构造函数和说明
1
Scanner(File source)
用于从给定 File 对象所表示的文件中读取数据。
2
扫描仪(InputStream 源)
用于从指定的 InputStream 读取数据。
3
扫描仪(Path 源)
用于从指定的文件对象所表示的文件中读取数据。

假设我们在路径 D:\ 中有一个文件 myFile.txt,如下所示 −

以下示例演示如何使用上述构造函数从此文件读取数据。

示例 - File 对象

  • 创建一个表示所需文件的 File 对象。
  • 通过传递上述创建的文件对象来创建一个 Scanner 类。
  • hasNext() 方法验证文件是否还有一行,nextLine() 方法读取并返回文件中的下一行。使用这些方法读取文件的内容。
import java.io.File;
import java.util.Scanner;
public class ContentsOfFile {
   public static void main(String args[]) throws Exception {
      //创建 File 对象
      File file = new File("D:\MyFile.txt");
      //创建 Scanner 对象
      Scanner sc = new Scanner(file);
      //StringBuffer 用于存储内容
      StringBuffer sb = new StringBuffer();
      //将每一行追加到缓冲区
      while(sc.hasNext()) {
         sb.append(" "+sc.nextLine());
      }
      System.out.println(sb);
   }
}

输出

Hi welcome to Tutorialspoint ....

示例 - InputStream 对象

  • 通过将所需文件的路径作为参数传递给其构造函数来创建 FileInputStream 对象。
  • 通过传递上面创建的 FileInputStream 对象来创建 Scanner 类。
  • hasNext() 方法验证文件是否还有一行,nextLine() 方法读取并返回文件中的下一行。使用这些方法读取文件的内容。
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Scanner;
public class ContentsOfFile {
   public static void main(String args[]) throws Exception {
      //创建 File 对象
      InputStream inputStream = new FileInputStream("D:\MyFile.txt");
      //创建 Scanner 对象
      Scanner sc = new Scanner(inputStream);
      //StringBuffer 用于存储内容
      StringBuffer sb = new StringBuffer();
      //将每一行追加到缓冲区
      while(sc.hasNext()) {
         sb.append(" "+sc.nextLine());
      }
      System.out.println(sb);
   }
}

输出

Hi welcome to Tutorialspoint ....

相关文章