📜  Java中读取文本文件的不同方法(1)

📅  最后修改于: 2023-12-03 15:02:03.942000             🧑  作者: Mango

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

在Java中,读取文本文件是非常常见的操作。Java提供了多种读取文本文件的方法,每种方法都有自己的特点和适用场景。本文将介绍Java中读取文本文件的不同方法。

使用FileInputStream和BufferedReader
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class ReadFileExample1 {

    public static void main(String[] args) throws IOException {
        String fileName = "path/to/file.txt";
        FileInputStream inputStream = new FileInputStream(fileName);
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println(line);
        }
        bufferedReader.close();
    }
}

以上代码使用了FileInputStreamBufferedReader来读取文本文件。FileInputStream用于读取文件,而BufferedReader用于读取文本行。这种方法的优点是简单,适用于小文件,但因为是逐行读取,对于大文件性能较差。

使用FileReader和BufferedReader
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileExample2 {

    public static void main(String[] args) throws IOException {
        String fileName = "path/to/file.txt";
        FileReader fileReader = new FileReader(fileName);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println(line);
        }
        bufferedReader.close();
    }
}

以上代码使用了FileReaderBufferedReader来读取文本文件。FileReaderFileInputStream类似,用于读取文件,而BufferedReader用于读取文本行。这种方法与使用FileInputStreamBufferedReader的方法类似,但由于是逐行读取,也不适用于大文件。

使用Files和BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class ReadFileExample3 {

    public static void main(String[] args) throws IOException {
        String fileName = "path/to/file.txt";
        BufferedReader bufferedReader = Files.newBufferedReader(Paths.get(fileName));
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println(line);
        }
        bufferedReader.close();
    }
}

以上代码使用了FilesBufferedReader来读取文本文件。Files是Java 7中引入的新功能,用于读写文件,而BufferedReader用于读取文本行。这种方法简单、易于使用,也适用于大文件。

使用Scanner
import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class ReadFileExample4 {

    public static void main(String[] args) throws IOException {
        String fileName = "path/to/file.txt";
        File file = new File(fileName);
        Scanner scanner = new Scanner(file);
        while (scanner.hasNextLine()) {
            System.out.println(scanner.nextLine());
        }
        scanner.close();
    }
}

以上代码使用了Scanner来读取文本文件。Scanner是Java中读取输入的常用类,也可以用于读取文件。这种方法简单、易于使用,也适用于大文件。

总结:

以上介绍了Java中读取文本文件的不同方法,每种方法都有其优缺点和适用场景。开发中需要根据实际情况选择合适的方法。