📅  最后修改于: 2023-12-03 14:43:04.859000             🧑  作者: Mango
在Java程序中,经常需要读取文件的内容并逐行处理,本文介绍如何用Java读取文件中的每一行。
要读取文本文件,可以使用Java的BufferedReader
类,它提供了readLine
方法用于读取文件中的每一行文本。下面是一个简单的例子:
try (BufferedReader br = new BufferedReader(new FileReader("input.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
说明:
BufferedReader
包装FileReader
后,调用readLine
方法读取每一行文本;try-with-resources
语句用于自动关闭文件流;要读取二进制文件,可以使用Java的FileInputStream
类,它提供了read
方法用于读取文件中的每一个字节。下面是一个简单的例子:
try (FileInputStream fis = new FileInputStream("file.bin")) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
for (int i = 0; i < bytesRead; i++) {
System.out.print(buffer[i] + " ");
}
}
} catch (IOException e) {
e.printStackTrace();
}
说明:
FileInputStream
用于读取二进制文件;read
方法返回-1表示到达文件末尾;要读取网络文件,可以使用Java的URL
类,它提供了一个openStream
方法用于打开网络连接。下面是一个简单的例子:
try (BufferedReader br = new BufferedReader(new InputStreamReader(new URL("http://example.com/file.txt").openStream()))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
说明:
URL
类用于打开网络连接;InputStreamReader
将输入流转换成字符流;try-with-resources
语句用于自动关闭文件流。本文介绍了如何用Java读取文件中的每一行,包括读取文本文件、二进制文件和网络文件。读取文本文件可以使用BufferedReader
类,读取二进制文件可以使用FileInputStream
类,读取网络文件可以使用URL
类。为避免文件流未关闭的问题,可以使用try-with-resources
语句自动关闭文件流。