写入文件有点复杂,我们要把其他输入框的内容更新到原来选的那行,还有更新至文件中,思路是:每一行的内容都不一样,要是一样还得考虑获取鼠标选择的行数,这就难了。
我这里文件内容的每一行都不一样,只要获取其他输入框的内容,替换到指定行中,然后在更新到文件里。
我们先写个方法,百度都有:
/*
* 实现写入文件方法
* */
private void writeFile(File file, String content) {
if (file == null || content == null) {
return;
}
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(content);
writer.flush();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
写入文件的方法,调用上面的方法,加起来就两句话(重点):
mTotalContent=mTotalContent.replace(sum, sumString);//替换内容
writeFile(mDestFile, mTotalContent);//写入文件中
写入按钮的实现,写入前考虑做个提示框是否确定修改:
//写入操作
btn_Button_xieru.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//获取RF和参数内容
String getName = textField_name.getText();
String getRF=textField_RF.getText();
String getNumber=textField_number.getText();
String sumString =getName+" ="+getRF+","+getNumber;
try{
//弹出确认框,是否确定执行
int res=JOptionPane.showConfirmDialog(null, "将要修改为"+sumString+"是否继续", "是否继续", JOptionPane.YES_NO_OPTION);
if(res==JOptionPane.YES_OPTION){
System.out.println("选择是后执行的代码"); //点击“是”后执行这个代码块
//打印出来的数值看对不对
System.out.println("ROM="+ROM);//鼠标点击位置的行数
System.out.println("getRF="+getRF);
System.out.println("getNumber="+getNumber);
System.out.println("sumString="+sumString);//修改后的内容
System.out.println("sum="+sum);//需要替换的内容,从鼠标指定的位置获取的
mTotalContent=mTotalContent.replace(sum, sumString);//替换
writeFile(mDestFile, mTotalContent);//写入文件中
System.out.println("mTotalContent="+mTotalContent);//需要替换的内容
//更新后,大输入框继续显示更新后内容,好下次在执行一次写入操作
if(mTotalContent!=null){
int start=mTotalContent.indexOf(prefixStart)+prefixStart.length();//从某处开始
int end=mTotalContent.indexOf(prefixEnd);//到某处结束
String finalRes=mTotalContent.substring(start, end);//大输入框只显示文件内某处开始到结束的范围
// System.out.print(finalRes);
textArea.setText("");
textArea.append(finalRes+"\n");//显示内容到大输入框中
}
}else{
System.out.println("选择否后执行的代码"); //点击“否”后执行这个代码块
}
}catch (Exception ex) {
ex.printStackTrace();
}
}
});