Java 读取文本文件的不同方法

Java 读取文本文件的不同方法

在Java中读取文本文件是许多开发人员常见的任务,可以使用各种类和方法来完成,包括’BufferedReader’、’Scanner’和’FileReader’类。在本文中,我们将探讨这些不同的方法,并提供示例来帮助您选择最合适的方法。请注意,这些类还与一些异常相关联,因此需要定义一个异常处理块来处理这些异常。

在编写程序之前,先创建一个文本文件并给它起一个合适的名称,并在其中放入一些内容。我们在本地机器的D驱动器上创建了一个名为’myTextfile.txt’的文本文件。

使用Scanner类

Scanner是’java.util’包中最常用的类,它有助于从不同的源(如键盘和文件)获取输入。要使用Scanner读取文本文件,我们需要创建一个File实例,并将其作为参数传递给Scanner的构造函数。

语法

Scanner nameOfObject = new Scanner(objectOfFile);

方法

  • 第一步是创建一个‘File’类的实例来存储指定文件的路径。

  • 现在,将这个实例传递给Scanner类的构造函数。

  • 使用内置方法‘hasNextLine()’检查文件是否包含任何数据,然后使用‘nextLine()’方法读取可用数据。

示例

下面的示例演示了使用Scanner类读取文本文件的用法。

import java.io.*;
import java.util.*;
public class Readtxt1 {
   public static void main(String[] args) {
      try {
         // path of the file
         File flpath = new File("D:/Java Programs/myTextfile.txt");
         Scanner input = new Scanner(flpath);
         while (input.hasNextLine()) { // to check available data
            System.out.println(input.nextLine());
         }
         input.close(); // closing the Scanner
      }
      catch (FileNotFoundException exp) { // to handle exception
         System.out.println("There is error finding file");
      }
   }
}

输出

Welcome to Tutorials Point !!

使用BufferedReader类

它主要用于从输入流(如本地文件和键盘)中读取字符。要使用BufferedReader读取文本文件,我们需要创建一个FileReader类的实例,并将其作为参数传递给BufferedReader的构造函数。

语法

BufferedReader nameOfObject = new BufferedReader(objectOfFileReader);

方法

  • 首先创建一个‘File’类的实例,用于存储指定文件的路径。

  • 现在,将此实例传递给BufferedReader类的构造函数。

  • 现在,使用while循环和‘readLine()’方法声明一个String变量来存储文件的信息。

示例

在这个示例中,我们将定义一个静态方法来执行乘法运算。由于它不接受参数,因此我们在同一类的main()方法中不带任何参数调用此方法。

import java.io.*;
import java.util.*;
public class Readtxt2 {
   // path of the file
   final static String flpath = "D:/Java Programs/myTextfile.txt";
   public static void main(String[] args) {
      try {
         File filename = new File(flpath);
         BufferedReader bufrd = new BufferedReader( new FileReader(filename));
         String info = null;

         // reading the given file
         while( (info = bufrd.readLine()) != null ) {
            System.out.println(info);
         }
      }
      catch (Exception exp) { // to handle exception
         System.out.println("There is error finding file");
      }
   }
}

输出

Welcome to Tutorials Point !!

使用FileReader类

它使用默认的字符编码和字节缓冲区大小来读取信息。要使用FileReader读取文本文件,我们需要创建一个File类的实例,并将文件名或路径作为参数传递给FileReader的构造函数。

语法

FileReader nameOfObject = new FileReader(objectOfFile);

途径

  • 第一步是创建一个类“File”的实例,以存储指定文件的路径。

  • 现在,将此实例传递给FileReader类的构造函数。

  • 现在,使用while循环和“read()”方法声明一个整数变量来存储文件的信息。

示例

此示例展示了FileReader类实现读取文本文件的实际应用。

import java.io.*;
import java.util.*;
public class Readtxt3 {
   // path of the file
   final static String flpath = "D:/Java Programs/myTextfile.txt";
   public static void main(String[] args) {
      try {
         File filename = new File(flpath);
         FileReader filerd = new FileReader(filename);
         int info = 0;

         // reading the given file
         while( (info = filerd.read()) != -1) {
            System.out.print((char)info); // to convert int to char
         }
      }
      catch (Exception exp) { // to handle exception
         System.out.println("There is error finding file");
      }
   }
}

输出

Welcome to Tutorials Point !!

结论

在本文中,我们了解了在Java中读取文本文件的几种方法。每种方法都很简单直接,但最佳方法会取决于项目的具体需求。我们还通过示例程序看到了缓冲读取器(BufferedReader)、扫描器(Scanner)和文件读取器(FileReader)类的实际实现。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程