2016-05-28 7 views
2

私はクラスStudentクラスと2つの子クラス、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. } 

答えて

6

最も簡単な方法は、次のようになります。

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]) 
    } 
} 
+0

は、これらの両方は、ベースクラスの学生の子供のクラスです。どうすればいいですか? –

+0

つまり、テキストファイルのデータに基づいてどのように決定できますか? – Nikem

+0

ああ!したがって、ファイルの最初の3つのエントリはPermanentStudent用で、残りの7つはCasualStudent用です。また、あなたが書いたコードはwhile(true)ループの中に入りますか? –

関連する問題