首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ini4j编写ini文件

如何使用ini4j编写ini文件
EN

Stack Overflow用户
提问于 2013-02-08 16:31:42
回答 1查看 7.6K关注 0票数 1

我使用的是ini4j API http://ini4j.sourceforge.net/

到目前为止,我可以使用填充所需字段的JFileChooser从ini文件中读取内容;我需要能够获取这些文本字段的内容(作为字符串),并使用API将它们写入ini文件。

到目前为止,我拥有的代码是:

代码语言:javascript
运行
复制
public void writeIniFile() throws IOException{
    JFileChooser saveinijfc = new JFileChooser(currdir);
    int savereturnval = saveinijfc.showSaveDialog(null);
    if (savereturnval == JFileChooser.APPROVE_OPTION){
        File inioutfile = new File(saveinijfc.getSelectedFile(), "");
        Wini ini = new Wini(new File(inioutfile.getAbsolutePath()));

            // [GLOBAL]
            ini.put("GLOBAL", "clientname", getClientnameText());

            // [PREBACKUP]
            ini.put("PREBACKUP", "prebackup-enabled", String.valueOf(getPrebackupenabledSelection()));

            // [OPENVPN]
            ini.put("OPENVPN", "ovpnprofilename", getOvpnprofileText());

            ini.put("OPENVPN", "remotegatewayip", getOpenvpngatewayipText());

            // [NETWORK DRIVE]
            ini.put("NETWORK DRIVE", "drive-letter", getNetworkdriveletterText());

            ini.put("NETWORK DRIVE", "ipofshare", getIpofshareText());

            ini.put("NETWORK DRIVE", "sharename", getSharenameText());

            ini.put("NETWORK DRIVE", "shareusername", getShareusernameText());

            ini.put("NETWORK DRIVE", "sharepassword", getSharepasswordText());

            // [REGISTRY BACKUP]
            ini.put("REGISTRY BACKUP", "registrybackup-enabled", String.valueOf(getRegistrybackupenabledSelection()));

            ini.put("REGISTRY BACKUP", "hklm-software", String.valueOf(getHklmsoftwareenabledSelection()));

            ini.put("REGISTRY BACKUP", "reg-custompath-enabled", getRegistrycustompathenabledSelection());

            ini.put("REGISTRY BACKUP", "reg-custom-path", getRegistrycustompathText());

            // [EMAIL]
            ini.put("EMAIL", "emailenabled", String.valueOf(getEmailenabledSelection()));

            ini.put("EMAIL", "gmailusername", getGmailusernameText());

            ini.put("EMAIL", "gmailpassword", getGmailpasswordText());

            ini.put("EMAIL", "clientemail", getClientemailText());

            // STORE INI FILE
            ini.store();
    }

}

我怀疑我需要创建一些输出流来写入文件,我遵循本教程http://ini4j.sourceforge.net/tutorial/OneMinuteTutorial.java.html作为参考。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-10 20:52:32

为什么不直接打电话:

代码语言:javascript
运行
复制
File inioutfile = new File(saveinijfc.getSelectedFile(), "");
//Insert here.
if(!inioutfile.exists()) {
    if(!inioutfile.createNewFile()) return;
}
Wini ini = new Wini(new File(inioutfile.getAbsolutePath()));

这应该确保文件确实存在,如果文件不存在,它将创建它,如果它不能创建它,它将退出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14768533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档