
在 Java 中读取 txt 文件,主要有以下几种方法:
一、使用JAVA.IO包中的BufferedReader类
二、使用JAVA.IO包中的Scanner类
三、使用JAVA.NIO包中的Files类
四、使用Apache的commons-io库
每种方法都有其特点和适用场景,下面将一一进行详细介绍。
一、使用JAVA.IO包中的BufferedReader类
首先,我们需要创建一个FileReader对象,传递要读取的文件的路径。然后,我们创建一个BufferedReader对象,将刚刚创建的FileReader对象作为参数。最后,我们在一个循环中调用BufferedReader的readLine()方法来一行一行地读取文件。
try {
File file = new File("file.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
while((line = br.readLine()) != null){
System.out.println(line);
}
br.close();
fr.close();
} catch(IOException e){
e.printStackTrace();
}
二、使用JAVA.IO包中的Scanner类
我们可以创建一个File对象,然后将其传递给Scanner的构造函数,然后我们可以使用hasNextLine()和nextLine()方法来读取文件的内容。
try {
File file = new File("file.txt");
Scanner sc = new Scanner(file);
while (sc.hasNextLine()){
System.out.println(sc.nextLine());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
三、使用JAVA.NIO包中的Files类
Java 7引入了一个新的抽象类Files,它包含的静态方法可以用来读取文件。这是最简洁和现代的方法,但它只适用于较小的文件,因为所有的文件内容都会一次性读入内存。
try {
List<String> lines = Files.readAllLines(Paths.get("file.txt"), StandardCharsets.UTF_8);
for(String line : lines){
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
四、使用Apache的commons-io库
Apache的commons-io库提供了一种简单的方法来读取文件。这种方法的优点是代码简洁,但同样的,它也只适用于较小的文件。
try {
List<String> lines = FileUtils.readLines(new File("file.txt"), "UTF-8");
for(String line : lines){
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
在选择使用哪种方法时,需要考虑你的具体需求。如果你需要处理的文件很大,那么使用BufferedReader或Scanner类会是更好的选择。如果你处理的文件不大,那么使用Files类或commons-io库会让你的代码更简洁。
相关问答FAQs:
Q: 如何使用Java读取txt文件?
A: Java提供了多种方法来读取txt文件,以下是一种常用的方法:
-
使用
FileReader和BufferedReader类来读取txt文件,具体步骤如下:- 创建一个
File对象,指定要读取的txt文件的路径。 - 创建一个
FileReader对象,将File对象作为参数传入。 - 创建一个
BufferedReader对象,将FileReader对象作为参数传入。 - 使用
BufferedReader的readLine()方法逐行读取txt文件的内容。
示例代码如下:
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class ReadTxtFile { public static void main(String[] args) { try { File file = new File("path/to/your/txt/file.txt"); FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader); String line; while ((line = bufferedReader.readLine()) != null) { System.out.println(line); } bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } }注意:在代码中,将"path/to/your/txt/file.txt"替换为你要读取的txt文件的实际路径。
- 创建一个
-
使用Java 7的新特性
Files类来读取txt文件,具体步骤如下:- 使用
Files的readAllLines()方法读取整个txt文件的内容,并将其存储在一个List对象中。
示例代码如下:
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; public class ReadTxtFile { public static void main(String[] args) { try { Path path = Paths.get("path/to/your/txt/file.txt"); List<String> lines = Files.readAllLines(path); for (String line : lines) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }注意:同样地,在代码中,将"path/to/your/txt/file.txt"替换为你要读取的txt文件的实际路径。
- 使用
文章包含AI辅助创作,作者:Edit1,如若转载,请注明出处:https://docs.pingcode.com/baike/215922