帮忙写个JAVA 读写ini配置文件小程序!!!!!

需要打开程序,从ini文件读取各段数据显示在六个文本框内,如果用户输入新的内容后(无论哪个框),点击应用,把文本框内新的内容,写入到这个ini文件相应的段内,并且把原有的... 需要打开程序,从ini文件读取各段数据显示在六个文本框内,如果用户输入新的内容后(无论哪个框),点击应用,把文本框内新的内容,写入到这个ini文件相应的段内,并且把原有的内容覆盖掉,下次打开程序就会显示上次写入到文件的内容。面板是这样的: 展开
 我来答
匿名用户
2014-02-20
展开全部
其实使用 JDK 里面提供的 Properties 最方便。 相关使用方法可以自己去查看 JDK 的API文档。 package product;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;public class IniReader {

private Properties properties = new Properties();

private String iniPath = "test/product/pro.ini"; //ini 文件的路径

private JFrame jFrame = new JFrame("读取配置示例");

private JLabel jLabel1 = new JLabel("用户登录IP");
private JTextField jTextField1 = new JTextField(30);

private JLabel jLabel2 = new JLabel("端口号");
private JTextField jTextField2 = new JTextField(30);

private JLabel jLabel3 = new JLabel("TQ终端IP");
private JTextField jTextField3 = new JTextField(30);

private JLabel jLabel4 = new JLabel("端口号");
private JTextField jTextField4 = new JTextField(30);

private JLabel jLabel5 = new JLabel("WM终端IP");
private JTextField jTextField5 = new JTextField(30);

private JLabel jLabel6 = new JLabel("端口号");
private JTextField jTextField6 = new JTextField(30);

private JButton jButton1 = new JButton("取消");

private JButton jButton2 = new JButton("确定");

private void showFrame(){
try {
File file = new File(iniPath);
System.out.println(file.getAbsolutePath());
properties.load(new FileInputStream(iniPath));
} catch (FileNotFoundException e) {
System.out.println("找不到该文件");
JOptionPane.showMessageDialog(null, "保存信息出错!");
return;
} catch (IOException e) {
System.out.println("文件读取错误");
JOptionPane.showMessageDialog(null, "保存信息出错!");
return;
}
jTextField1.setText(properties.getProperty("UserLogin"));
jTextField2.setText(properties.getProperty("Userport"));
jTextField3.setText(properties.getProperty("TQterminal"));
jTextField4.setText(properties.getProperty("TQport"));
jTextField5.setText(properties.getProperty("VMterminal"));
jTextField6.setText(properties.getProperty("VMport"));

jButton1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
jTextField1.setText(properties.getProperty("UserLogin"));
jTextField2.setText(properties.getProperty("Userport"));
jTextField3.setText(properties.getProperty("TQterminal"));
jTextField4.setText(properties.getProperty("TQport"));
jTextField5.setText(properties.getProperty("VMterminal"));
jTextField6.setText(properties.getProperty("VMport"));
}
});

jButton2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
properties.setProperty("UserLogin", jTextField1.getText());
properties.setProperty("Userport", jTextField2.getText());
properties.setProperty("TQterminal", jTextField3.getText());
properties.setProperty("TQport", jTextField4.getText());
properties.setProperty("VMterminal", jTextField5.getText());
properties.setProperty("VMport", jTextField6.getText());
try {
properties.store(new FileOutputStream(iniPath),"");
} catch (Exception e1) {
e1.printStackTrace();
System.out.println("保存信息出错");
JOptionPane.showMessageDialog(jFrame, "保存信息出错!");
}
JOptionPane.showMessageDialog(jFrame, "保存成功!");
}

});
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jLabel1.setBounds(10, 40, 80, 30);
jTextField1.setBounds(100, 40, 80, 30);
jLabel2.setBounds(210, 40, 80, 30);
jTextField2.setBounds(300, 40, 80, 30);

jLabel3.setBounds(10, 80, 80, 30);
jTextField3.setBounds(100, 80, 80, 30);
jLabel4.setBounds(210, 80, 80, 30);
jTextField4.setBounds(300, 80, 80, 30);

jLabel5.setBounds(10, 120, 80, 30);
jTextField5.setBounds(100, 120, 80, 30);
jLabel6.setBounds(210, 120, 80, 30);
jTextField6.setBounds(300, 120, 80, 30);

jFrame.getContentPane().setLayout(null);

jFrame.getContentPane().add(jLabel1);
jFrame.getContentPane().add(jLabel2);
jFrame.getContentPane().add(jLabel3);
jFrame.getContentPane().add(jLabel4);
jFrame.getContentPane().add(jLabel5);
jFrame.getContentPane().add(jLabel6);

jFrame.getContentPane().add(jTextField1);
jFrame.getContentPane().add(jTextField2);
jFrame.getContentPane().add(jTextField3);
jFrame.getContentPane().add(jTextField4);
jFrame.getContentPane().add(jTextField5);
jFrame.getContentPane().add(jTextField6);

jButton1.setBounds(100,160,60,30);
jButton2.setBounds(230,160,60,30);

jFrame.getContentPane().add(jButton1);
jFrame.getContentPane().add(jButton2);

jFrame.setBounds(200, 200, 400, 300);
jFrame.setVisible(true);

}

public static void main(String[] args) {
new IniReader().showFrame();
}}
经测试,可用,正常。就是文件路径你自己配好。
匿名用户
2014-02-20
展开全部
packagemytools;

importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;

/
这是个配置文件操作类,用来读取和设置ini配置文件
@author由月
@version2004-08-18
/
publicfinalclassConfigurationFileelse
}
if
}elseif
}elseif
}
}
}
}finally
returndefaultValue;
}
/
修改ini配置文件中变量的值
@paramfile配置文件的路径
@paramsection要修改的变量所在段名称
@paramvariable要修改的变量名称
@paramvalue变量的新值
@throwsIOException抛出文件操作可能出现的io异常
/
publicstaticbooleansetProfileString
throwsIOExceptionelse
}
if
bufferedReader.close;
BufferedWriterbufferedWriter=
newBufferedWriter);
bufferedWriter.write;
bufferedWriter.flush;
bufferedWriter.close;

returntrue;
}
}
fileContent+=allLine+"";
}
}catchfinally
returnfalse;
}
/
程序测试
/
publicstaticvoidmaincatch

}
}
这个类可以读和写ini文件,不过先说明一点:它识别ini文件中的“;”为注释符,而不是识别“#”为注释符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式