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)类的实际实现。