首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将新数据附加到属性文件中的现有数据?

如何将新数据附加到属性文件中的现有数据?
EN

Stack Overflow用户
提问于 2013-07-01 17:41:45
回答 2查看 24.5K关注 0票数 8

我使用以下代码将数据写入属性文件

代码语言:javascript
复制
public void WritePropertiesFile(String key, String data)
{
Properties configProperty = new Properties();
configProperty.setProperty(key, data);
File file = new File("D:\\Helper.properties");
FileOutputStream fileOut = new FileOutputStream(file,true);
configProperty.store(fileOut, "sample properties");
fileOut.close();
}

I am calling the above method 3 times as follows:
help.WritePropertiesFile("appwrite1","write1");
help.WritePropertiesFile("appwrite2","write2");
help.WritePropertiesFile("appwrite3","write3");

但是,Helper.properties文件中的数据显示如下:

代码语言:javascript
复制
#sample properties
#Mon Jul 01 15:01:45 IST 2013
appwrite1=write1
#sample properties
#Mon Jul 01 15:01:45 IST 2013
appwrite2=write2
appwrite1=write1
#sample properties
#Mon Jul 01 15:01:45 IST 2013
appwrite3=write3
appwrite2=write2
appwrite1=write1

我希望将数据追加到现有数据,并且不想要重复的数据,如下所示:

代码语言:javascript
复制
appwrite3=write3
appwrite2=write2
appwrite1=write1

请建议一下怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-01 17:43:17

只是不要在追加模式下打开文件。

您可以从文件中读取现有属性,然后重新写入它们。如果您附加到文件中,则会附加Properties对象的所有内容,因为这就是您所要求的。

只需替换:

代码语言:javascript
复制
FileOutputStream fileOut = new FileOutputStream(file,true);

通过以下方式:

代码语言:javascript
复制
FileOutputStream fileOut = new FileOutputStream(file);

附注:您应该在finally块中.close()您的输出流。

票数 9
EN

Stack Overflow用户

发布于 2014-10-31 17:58:41

我知道这个问题已经得到了回答,但仅供将来参考,代码应该看起来更像-不像这样:

代码语言:javascript
复制
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

class WritePropertiesFile {

    public void WritePropertiesFile(String key, String data) {
        FileOutputStream fileOut = null;
        FileInputStream fileIn = null;
        try {
            Properties configProperty = new Properties();

            File file = new File("D:\\Helper.properties");
            fileIn = new FileInputStream(file);
            configProperty.load(fileIn);
            configProperty.setProperty(key, data);
            fileOut = new FileOutputStream(file);
            configProperty.store(fileOut, "sample properties");

        } catch (Exception ex) {
            Logger.getLogger(WritePropertiesFile.class.getName()).log(Level.SEVERE, null, ex);
        } finally {

            try {
                fileOut.close();
            } catch (IOException ex) {
                Logger.getLogger(WritePropertiesFile.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    public static void main(String[] args) {
        WritePropertiesFile help = new WritePropertiesFile();
        help.WritePropertiesFile("appwrite1", "write1");
        help.WritePropertiesFile("appwrite2", "write2");
        help.WritePropertiesFile("appwrite3", "write3");
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17401385

复制
相关文章

相似问题

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