Java中 reader.lines()和reader.readLine()的区别
时间: 2023-06-03 17:02:03 浏览: 91
Java中 reader.lines()和reader.readLine()的区别在于,reader.lines()会返回一个流(Stream),每个元素都是文件中的一行,而reader.readLine()则是一次读取一行数据,并返回该行数据的字符串。
相关问题
Using reader As New StreamReader(path) While Not reader.EndOfStream lines.Add(reader.ReadLine()) End While End Using
这段代码使用了 `StreamReader` 来读取指定路径下的文件的内容,然后将每行的内容添加到 `lines` 列表中。这里使用了 `Using` 语句块,它可以自动释放 `StreamReader` 对象,从而避免了资源泄漏。
在 `Using` 语句块中,首先创建了一个 `StreamReader` 对象,它可以从指定路径下的文件中读取内容。接着使用了 `While` 循环来读取每一行的内容,循环条件是 `Not reader.EndOfStream`,即当 `StreamReader` 没有读到文件末尾时一直循环。在循环体中,使用 `reader.ReadLine()` 方法来读取一行内容,然后将它添加到 `lines` 列表中。
最后,当 `Using` 语句块结束时,会自动释放 `StreamReader` 对象,从而避免了资源泄漏。这样就可以安全、高效地读取指定路径下的文件的内容了。
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.LinkedList; public class ReverseFileReader { public static void main(String[] args) throws IOException { String fileName = "example.txt"; LinkedList<String> lines = new LinkedList<>(); try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) { String line = null; while ((line = reader.readLine()) != null) { lines.addFirst(line); if (line.contains("friendList")) { break; } } } // 打印链表中的每一行 for (String line : lines) { System.out.println(line); } } }
这段代码实现了将一个文件中的内容按行倒序输出的功能。具体实现步骤如下:
1. 定义文件名 fileName 和一个链表 lines。
2. 使用 BufferedReader 读取文件内容,将每一行内容添加到链表的头部。
3. 如果读取到包含字符串 "friendList" 的行,则停止读取。
4. 遍历链表,按顺序输出每一行的内容,即实现了倒序输出文件内容的功能。
该代码中实现倒序功能的代码为 `lines.addFirst(line);`,该语句将每一行内容添加到链表头部,从而实现了倒序输出的效果。
阅读全文