欢迎访问宙启技术站
智能推送

使用JavaIO流读取文件的方法

发布时间:2023-06-14 16:55:45

在Java中,我们可以使用Java IO流来读取文件。Java提供了多种 InputStream 和 Reader 类来实现文件读取。下面我们将介绍使用Java IO流读取文件的方法。

1. 使用 FileInputStream

FileInputStream 是一个字节流,它用来读取文件的字节。我们可以使用 FileInputStream 来读取任何类型的文件,如文本文件、图像文件等。以下是使用 FileInputStream 读取文件的示例代码:

File file = new File("test.txt");
FileInputStream fis = new FileInputStream(file);
byte[] bytes = new byte[(int) file.length()];
int length = fis.read(bytes);
String content = new String(bytes, 0, length);
fis.close();

在上面的代码中,我们首先创建一个 File 对象来表示需要读取的文件。接着创建一个 FileInputStream 对象来读取文件,并定义一个 byte 数组用于存储文件内容。然后,我们使用 read() 方法来读取文件的字节,并将读取的字节数组转换为字符串来获取文件内容。

2. 使用 FileReader

FileReader 是一个字符流,它用来读取文本文件的字符。我们使用 FileReader 来读取文本文件时,它会自动将字节转换为字符。以下是使用 FileReader 读取文件的示例代码:

File file = new File("test.txt");
FileReader fr = new FileReader(file);
char[] chars = new char[(int) file.length()];
int length = fr.read(chars);
String content = new String(chars, 0, length);
fr.close();

在上面的代码中,我们首先创建一个 File 对象来表示需要读取的文件。接着创建一个 FileReader 对象来读取文件,并定义一个 char 数组用于存储文件内容。然后,我们使用 read() 方法来读取文件的字符,并将读取的字符数组转换为字符串来获取文件内容。

3. 使用 BufferedReader

BufferedReader 是一个字符流,它用来读取文本文件的字符。它可以缓冲读取,从而提高效率。以下是使用 BufferedReader 读取文件的示例代码:

File file = new File("test.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
    sb.append(line);
}
String content = sb.toString();
br.close();

在上面的代码中,我们首先创建一个 File 对象来表示需要读取的文件。接着创建一个 FileReader 对象来读取文件,并创建一个 BufferedReader 对象来缓冲读取文件。然后,我们使用 readLine() 方法逐行读取文件内容,并将读取的每一行加入 StringBuilder 中。最后,我们将 StringBuilder 转换为字符串来获取文件内容。

4. 使用 Scanner

Scanner 是一个字符流,它用来读取文本文件的字符。它可以按照指定的分隔符来读取文件内容。以下是使用 Scanner 读取文件的示例代码:

File file = new File("test.txt");
Scanner scanner = new Scanner(file);
scanner.useDelimiter("\\Z");
String content = scanner.next();
scanner.close();

在上面的代码中,我们首先创建一个 File 对象来表示需要读取的文件。接着创建一个 Scanner 对象来读取文件,调用 useDelimiter() 方法设置分隔符,然后使用 next() 方法获取文件内容。

总结:

在Java中,我们可以使用多种方式来读取文件,如 FileInputStream、FileReader、BufferedReader、Scanner等。其中,FileInputStream 适用于读取任何类型的文件,FileReader 适用于读取文本文件,BufferedReader 和 Scanner 可以实现高效的缓冲读取。在选择使用什么方法时,我们要根据文件的类型和大小以及程序性能等方面进行考虑。