java - 如何将此文本文件读入以下类数组?

标签 java

我有一个 Student 类和两个子类,CasualStudent 和 PermanentStudent。我现在正在做这个。

Employee[] a = new Employee[10];
int count;
a[0] = new PermanentStudent("John", "LUI", "HJFDDFDFJ"); 
a[1] = new PermanentStudent("Peter", "VAMPLEW", "VAM12345678");
a[2] = new PermanentStudent("Rudi", "SKACEL", "SKA51515151");
a[3] = new CasualStudent("Katie","BLACKBURN","BLA41925612");
a[4] = new CasualStudent("Neal","STEPHENSON","STE97527467");
a[5] = new CasualStudent("Neneh","CHERRY","CHE98765432");
a[6] = new CasualStudent("Chris","BROOKMYRE","BRO97635198");
a[7] = new CasualStudent("Grace","HOPPER","HOP26554432");
a[8] = new CasualStudent("Randall","MUNROE","XKCD1234567");
a[9] = new CasualStudent("Kaylee","FRYE","FRY90224718");

这些子类中的每一个都有一个构造函数,我已经在代码中手动编码了数据。现在,我想从 .txt 文件中读取这些数据。我知道如何阅读,到目前为止我已经这样做了:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Program {
    public static void main(String[] args) {

    BufferedReader reader = new BufferedReader(new FileReader(
        "file.txt"));
    while (true) {
        String line = reader.readLine();
        if (line == null) {
        break;
        }
        System.out.println(line);
    }
    reader.close();
    }
}

但是我如何将数据读入这样的类中呢?我是 Java 的新手,我不明白该怎么做?请指导我正确的方向。谢谢!

此外,文本文件将始终包含 10 行,每行将具有以下格式。

John LUI HJFDDFDFJ
..................

代码:

61. int i = 0;
62. for (i = 0; i < 10; i++)
63. {
64.     String x = a[i].toString();
65.     System.out.println(x);
66. }

最佳答案

最简单的方法如下:

Employee[] employees = new Employee[10];
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {

  for (int i = 0; i < 3; i++) {
    String line = reader.readLine();
    String[] parts = line.split(" ");
    employees[i] = new PermanentStudent(parts[0], parts[1], parts[2])
  }

  for (int i = 3; i < 10; i++) {
    String line = reader.readLine();
    String[] parts = line.split(" ");
    employees[i] = new CasualStudent(parts[0], parts[1], parts[2])
  }
}

关于java - 如何将此文本文件读入以下类数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37501774/

相关文章:

java - Jersey:异常映射器,用于在编码(marshal)请求负载时验证枚举值

java - 将 JTables 与 netbeans 6.1 又名 Matisse 一起使用

java - 玻璃鱼 : exception after downloading client

java - 对象类型转换的性能

java - 在 SWT 中为列表项创建右键单击选项

java - 递归排列(计数规则)

java - 通用不匹配

java - 在记录 Java 程序时,记录类的约定是什么?

java - 无法将位图图像获取到 ImageView

java - 通过JPA更新实体