2013-07-01 28 views
6

我使用的数据写入性能以下代码文件如何将新数据附加到属性文件中的现有数据?

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文件中的数据显示如下:

#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 

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

appwrite3=write3 
appwrite2=write2 
appwrite1=write1 

请建议该怎么做?

回答

7

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

您从文件读取现有属性并再次写入它们。如果追加到文件中,将会追加Properties对象的所有内容,因为这是您要求的内容。

只需更换:

FileOutputStream fileOut = new FileOutputStream(file,true); 

有:

FileOutputStream fileOut = new FileOutputStream(file); 

旁注:你应该在finally.close()你的输出流。

+0

嗨FGE,感谢的答案...我想你提到的代码,它的工作正常。但是当我从其他类文件访问方法时遇到了问题。 我从一个类文件调用上述函数,如下所示: help.WritePropertiesFile(“appwrite1”,“write1”); help.WritePropertiesFile(“appwrite2”,“write2”); help.WritePropertiesFile(“appwrite3”,“write3”); – Vikas

+0

这完全是另一个问题;)你没有显示足够的代码来获得帮助。 – fge

+0

来自其他类文件我打电话如下: help.WritePropertiesFile(“appwrite4”,“write4”); help.WritePropertiesFile(“appwrite5”,“write5”); help.WritePropertiesFile(“appwrite6”,“write6”); 输出显示为 appwrite4 = write4 appwrite5 = write5 appwrite6 = write6 它去除的Class1写入的数据,并与等级2取代它...... _Please让我知道如何存储来自类文件写入的数据? – Vikas

1

我知道这已经回答了,但只是以供将来参考代码应该看起来更少这样的:

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"); 
    } 
} 
相关问题