有一个文件Activites.dat
,其格式如下:
日
ActivityName
SupervisorName
位置
是否已支付?
例如数据
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
,但我没有使用它,因为我不知道在这种特殊情况下在哪里或如何使用它。