java - 使用 Java 从文本文件中一次读取 x 行文本

标签 java

我正在尝试为学校项目编写一种方法,用于显示文本文件中的联系人列表。一次只应显示四个联系人,然后重新输入“d”应显示接下来的 4 个联系人,直到全部显示为止。有人对我如何实现这一目标有任何建议吗?现在我只有它,所以它可以读取所有文本行。

import java.util.Scanner;  import java.io.*; 
public class Contacts
{
  public static void main(String [] args) throws IOException
  {
     File aFile = new File("contacts.txt");
     if (!aFile.exists())
       System.out.println("Cannot find file");
     else
     {
           Scanner in = new Scanner(aFile);
           String input;
           Scanner keyboard = new Scanner(System.in);
           input = keyboard.nextLine();
           if (input.contains("d"))
           {
               String aLineFromFile;
               while(in.hasNext())
               {
                 aLineFromFile = in.nextLine();
                 System.out.println(aLineFromFile);
               }
               in.close();
           }
     }
  }
}

最佳答案

正如 MadProgrammer 所说,使用计数器来跟踪 4 人一组。

else {
    Scanner in = new Scanner(aFile);
    Scanner keyboard = new Scanner(System.in);
    String input = keyboard.nextLine();
    while(input.contains("d")) {
        int limit = 4;
        String aLineFromFile;
        while(in.hasNext() && limit > 0) {
            aLineFromFile = in.nextLine();
            System.out.println(aLineFromFile);
            limit--;
        }

        if(in.hasNext()) {
            input = keyboard.nextLine();
        }
        else {
            break;
        }
    }
}

关于java - 使用 Java 从文本文件中一次读取 x 行文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35541979/

相关文章:

java - Applet 信任库 API 代码

java - 根据用户输入显示数字的出现...数组,java

java - BlueJ 数组列表参数。

java - Selenium 找不到元素

java - 如何从 Spring Boot 应用程序中的 graphQL 端点中的传入消息中读取请求 header

java - Caused by : java. lang.ClassCastException : java. lang.Class无法转换为java.lang.reflect.ParameterizedType

java - 使用 Gson 加载对象

java - 通过 joinColumn 查询 EntityManager

java - 显示倒计时

java - 如何调用从 JNI 返回数组的 C++ 方法并将数组的内容转换为 java 类数组?