0

私は現在、データを に保存する必要がある学校のプロジェクトに取り組んでいますRandomAccessFile。私はこれが最も効率的な方法ではないと考えましたが、私はそれをしなければなりません. 注: RandomAccessFile クラスを使用する必要があります。

stringsシンプルで作成されたメインメソッドをファイルに保存する方法を理解intしていますが、この知識を自分のプログラムに転送するのに問題があります。

私は4つの異なるクラス、つまり、、、を持ってDatabaseGroupます。このクラスを使用すると、グループのリンク リストにグループを追加できます。各グループに、生徒 (下記参照) とリハーサル日 (劇場管理プログラム) を追加できます。これらはそれぞれ と に追加されます。StudentRehearsalDatabaselinkedlist<Student>linkedlist<Rehearsal>

これは、作成されたグループのリンクリストに学生を追加するクラスでの私のaddStudent方法です。Group

public void addStudent(int id, String firstname, String lastname) throws IOException {
    Student newstudent = new Student(id, firstname, lastname);
    if (!Students.contains(newstudent)) {
        Students.add(newstudent);
} else 
        JOptionPane.showMessageDialog(null, "Student with ID " + id
                + " already exists in group!", "Error",
                JOptionPane.WARNING_MESSAGE);
}

メソッドの実行時に学生オブジェクトをファイルに自動的に書き込むにはどうすればよいですか?

これは私のremoveStudent方法です:

public void removeStudent(int id) {
    if (!Students.remove(new Student(id, null, null))) {
        JOptionPane.showMessageDialog(null, "Student with ID[" + id
                + "] not present. System unchanged.");

    } 
}

メソッドの実行時に特定のオブジェクトをファイルから削除するにはどうすればよいですか。それについても助けていただければ、それは素晴らしいことです:)

4

2 に答える 2

0

toString()ファイルに書き込みたい方法でオブジェクトクラスのメソッドをオーバーライドしてください!

foreach次に、を使用してループし、学生オブジェクトをlinkedlist呼び出してファイルに書き込みますtoString()

例:

fileOutputStream outStream=newFileOutputStream("../RandomAccessFile");//path where you want to create file
foreach(Student s in linkedlist)
{
  outStream.println(s.toString()+"/n");
}
于 2013-04-09T09:12:41.357 に答える
0

RandomAccessFileコードが理解できるファイル プロトコルを実装する以外には、 から何も削除することはできません。または、各レコードにバイトヘッダーを実装して、1 が存在することを意味し、0 が削除されたことを意味するようにします。

于 2013-04-09T09:50:17.263 に答える