您的位置:

Java读取本地文件

一、使用FileReader和BufferedReader读取文件

在Java中,可以通过FileReader和BufferedReader类来读取文本文件。FileReader是一个用于读取字符流的流,并且可以指定读取文件的路径。BufferedReader则是一个缓冲流,可以提高读取数据的效率。

import java.io.*;

public class ReadFile {
    public static void main(String[] args) {
        try {
            File file = new File("test.txt");
            FileReader fileReader = new FileReader(file);

            BufferedReader bufferedReader = new BufferedReader(fileReader);
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                System.out.println(line);
            }
            fileReader.close();
            bufferedReader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上面的代码中,我们指定了要读取的文件为test.txt。首先创建FileReader对象,然后将其传递给BufferedReader构造函数。每次调用readLine()方法可以读取文本文件中的一行内容。

二、使用FileInputStream和DataInputStream读取文件

除了使用FileReader和BufferedReader类来读取文本文件,还可以使用FileInputStream和DataInputStream类来读取任何类型的文件。

import java.io.*;

public class ReadFile {
    public static void main(String[] args) {
        try {
            File file = new File("test.txt");
            FileInputStream fileInputStream = new FileInputStream(file);

            DataInputStream dataInputStream = new DataInputStream(fileInputStream);
            String line;
            while ((line = dataInputStream.readLine()) != null) {
                System.out.println(line);
            }
            fileInputStream.close();
            dataInputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上面的代码中,我们使用FileInputStream类来读取文件,并传递给DataInputStream构造函数。使用这种方法读取文件时,可以保留文件中的二进制格式,然后使用DataInputStream类来读取数据内容。

三、使用Scanner类读取文件

另外,Java还提供了Scanner类来读取文件。Scanner类可以将文件中的内容以文本格式读取,并且可以指定不同的分隔符。

import java.io.*;
import java.util.Scanner;

public class ReadFile {
    public static void main(String[] args) {
        try {
            File file = new File("test.txt");
            Scanner scanner = new Scanner(file);

            while(scanner.hasNextLine()){
                String line = scanner.nextLine();
                System.out.println(line);
            }
            scanner.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Scanner类时,首先需要创建Scanner对象,并将文件传递给它。然后可以使用hasNextLine()方法来检查文件是否还有数据行可供读取,使用nextLine()方法可以读取一行数据。

结论

在Java中,我们可以使用多种方法来读取本地文件。每种方法都有其优缺点和适用范围。使用FileReader和BufferedReader类来读取文本文件是最常用的方法之一,使用FileInputStream和DataInputStream类来读取任何类型的文件,使用Scanner类可以将文件以文本格式读取。