文件读写工具简单实现(六)--写入按钮替换/修改指定行的内容

104 阅读2分钟

写入文件有点复杂,我们要把其他输入框的内容更新到原来选的那行,还有更新至文件中,思路是:每一行的内容都不一样,要是一样还得考虑获取鼠标选择的行数,这就难了。

我这里文件内容的每一行都不一样,只要获取其他输入框的内容,替换到指定行中,然后在更新到文件里。

\

我们先写个方法,百度都有:

 /*
	  * 实现写入文件方法
	  * */
	 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();  
            }	
	}	
   });