如何让bufferedreader逐行读取文件。打印完前两行后等待用户按下回车再打印接下来的两行
时间: 2023-08-15 08:06:42 浏览: 37
你可以使用 `readLine()` 方法来逐行读取文本文件中的内容,并使用 `System.in.read()` 方法等待用户按下回车键后再继续打印下两行内容。以下是一个示例代码:
```
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String line;
int count = 0;
while ((line = reader.readLine()) != null) {
System.out.println(line);
count++;
if (count % 2 == 0) {
System.out.println("Press Enter to continue...");
System.in.read();
}
}
reader.close();
```
在这个示例中,`reader.readLine()` 方法会读取文件中的一行文本并将其存储在 `line` 变量中。在每次循环迭代中,程序会打印出这一行文本,并将计数器 `count` 的值加 1。如果 `count` 的值是偶数,则程序会输出提示信息并等待用户按下回车键后再继续。当读到文件末尾时,`readLine()` 方法将返回 `null`,循环将停止。
相关问题
java如何让bufferedreader逐行读取文件。打印完前两行后等待用户按下回车再打印接下来的两行
你可以使用 Java 的 `BufferedReader` 类逐行读取文件,并使用 `Scanner` 类从控制台读取用户输入。以下是示例代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
Scanner scanner = new Scanner(System.in)) {
String line;
int count = 0;
while ((line = reader.readLine()) != null) {
System.out.println(line);
count++;
if (count % 2 == 0) {
System.out.print("Press enter to continue...");
scanner.nextLine();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们首先创建了一个 `BufferedReader` 对象来逐行读取 `file.txt` 文件中的内容。然后,我们使用一个 `Scanner` 对象来从控制台读取用户输入。在每次循环迭代中,我们会打印出当前行的内容,然后将计数器 `count` 的值加 1。如果 `count` 的值是偶数,则程序会输出提示信息并等待用户按下回车键后再继续。最后,我们在 `try` 块的末尾使用了 `try-with-resources` 语句来自动关闭 `BufferedReader` 和 `Scanner` 对象。
创建文件读取类 创建一个新类.txt该类逐行读取对话并将其打印到控制台。在此类中,您应该实现两种不同的方法来读取文件: 1. 使用读取文件的扫描程序实现方法。 (成功将文件内容打印到控制台:1P)2. 实现一个使用 BufferedReader 读取文件的方法。 (成功将文件内容打印到控制台:1P) 最后,更改使用缓冲读取器逐行读取文件的第二种方法。打印前两行后,使程序等待用户按回车键,然后再打印接下来的两行。继续此操作,直到打印出所有行。到达文件末尾后,程序应终止,以便当用户再次按 Enter 时,不会发生任何不良情况。 提示:您可以使用从系统输入流中读取的扫描仪,如下所示 扫描仪 s = 新扫描仪(System.in);以等待用户输入。 (成功将文件内容打印到控制台:1P)
好的,我理解了您的要求。以下是实现这个功能的示例代码:
```
import java.io.*;
public class FileReadingClass {
public static void main(String[] args) {
readByScanner("test.txt");
readByBufferedReader("test.txt");
readByBufferedReaderWithPause("test.txt");
}
// 使用扫描器逐行读取文件
public static void readByScanner(String fileName) {
try {
File file = new File(fileName);
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
// 使用 BufferedReader 逐行读取文件
public static void readByBufferedReader(String fileName) {
try {
File file = new File(fileName);
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 使用 BufferedReader 逐行读取文件,并且每隔两行暂停等待用户输入
public static void readByBufferedReaderWithPause(String fileName) {
try {
File file = new File(fileName);
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
int count = 0;
while ((line = reader.readLine()) != null) {
System.out.println(line);
count++;
if (count % 2 == 0) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
if (input.equals("")) {
continue;
}
}
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例代码中,我们首先定义了一个 `FileReadingClass` 类,然后实现了三个方法来逐行读取文件。
第一个方法 `readByScanner` 使用扫描器逐行读取文件,并将每一行打印到控制台上。
第二个方法 `readByBufferedReader` 使用 BufferedReader 逐行读取文件,并将每一行打印到控制台上。
第三个方法 `readByBufferedReaderWithPause` 和第二个方法类似,但是在打印前两行后,程序会等待用户按回车键,然后再打印接下来的两行。我们使用了一个计数器来跟踪当前读取的行数,当读取到的行数是偶数时,就会暂停等待用户输入。
请注意,在第三个方法中,我们使用了 `Scanner` 类从系统输入流中读取用户的输入。在等待用户输入之后,我们检查用户是否按下了回车键。如果是,程序会继续打印接下来的两行。否则,程序会继续等待用户输入。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)