Activites.dat
次のような形式のファイルがあります。
日
活動名
スーパーバイザー名
場所
支払い済み?
例: データ
Sunday
Advanced Open Water Dive Certificate
Mr.Jones
N/A
Yes
Sunday
Sailing
Mr. Jackson
N/A
Yes
Sunday
Generation Next
Ms.Steele
N/A
Yes
現在、テーブルから現在選択されているアクティビティのすべての情報を表示するフレームにボタンがあり、フレームは正常に機能します。選択したアクティビティのすべてのデータが正しく表示されます。
私が今しなければならないことは、ボタンが押されたときに、編集/置換が必要なデータを見つけるbtnSave
ために元の値が保持され、ユーザーが入力した現在のデータが保存され、新しいデータがActivities.dat
の古いデータActivities.dat
例: 望む結果
イニシャル
Sunday
Advanced Open Water Dive Certificate
Mr.Jones
N/A
Yes
Sunday
Sailing
Mr. Jackson
N/A
Yes
Sunday
Generation Next
Ms.Steele
N/A
Yes
編集版
Sunday
Advanced Open Water Dive Certificate
Mr.Jones
N/A
Yes
**Monday**
**Sailing Elite Course**
**Mr.Jonathan**
**HS5**
**No**
Sunday
Generation Next
Ms.Steele
N/A
Yes
私の現在の(動作していない)コード
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {
//ALL "original-" STRINGS ARE INITIALISED BEFORE
String nActivityName = txtActivityName.getText();
Object nDay = comboboxDay.getSelectedItem().toString();
String nSupervisor = txtSupervisor.getText();
String nLocation = txtLocation.getText();
String nPaid = null;
//Check which option is selected: Paid or Not Paid
if(radioYes.isSelected())
{
nPaid = radioYes.getText();
}
if(radioNo.isSelected())
{
nPaid = radioNo.getText();
}
File file = new File("Activities.dat");
try{
BufferedReader reader = new BufferedReader(new FileReader(file));
BufferedWriter writer = new BufferedWriter(new FileWriter(file, true));
while(reader.ready())
{
String RDay = reader.readLine();
String RActivityName = reader.readLine();
String RSupervisor = reader.readLine();
String RLocation = reader.readLine();
String RPaid = reader.readLine();
String nothing = reader.readLine();
//Match the exact same set of data as the original activity's data before edit.
if(RActivityName.equals(originalActivityName))
{
RDay.replace(RDay, (CharSequence) nDay);
// = nDay.toString();
RActivityName = nActivityName;
RSupervisor = nSupervisor;
RLocation = nLocation;
RPaid = nPaid;
nothing = nothing;
}
System.out.println(RDay + RActivityName + RSupervisor + RLocation + RPaid);
}
}
catch(IOException e)
{
Logger.getLogger(AddActivity.class.getName()).log(Level.SEVERE, null, e);
}
}
比較のために元の値を保存して新しいデータを取得することはできますが、古いデータを新しいデータに置き換える/編集する方法がわかりませんActivities.dat
。どうすればいいですか?
はい、持っていることは知っていBufferedReader
ますが、この特定の状況でどこでどのように使用するかわからないため、使用していません。