次のロジックを必要とするクラスに取り組んでいます。
If properties file @ "c:\somepath" (m_writePath) exists
if there is a value for the key offset
getProperty(offset)
else
write offset value
else
create property file ("c:/somepath")
write offset value
基本的に、これは私の現在の設定です:
public class myclass {
/**
* The properties file to store offset value.
*/
private static Properties m_offsetProperty = new Properties();
/**
* Process stuff.
*/
private void processStuff() {
File tmpFile = new File(m_writePath + "lastOffset.properties");
if (tmpFile.exists()) {
m_offsetProperty.load(new FileInputStream(m_writePath + "lastOffset.properties"));
m_offset = Long.getLong(m_offsetProperty.getProperty("offset"));
}
else {
createOffsetFile();
m_offset = 0;
setOffsetProperty();
}
}
/**
* Create properties file writePath/offset.properties.
*/
private void createOffsetFile() {
m_offsetProperty.setProperty("offset", String.valueOf(m_offset));
File propFile = new File(m_writePath + "lastOffset.properties");
FileWriter fw = null;
fw = new FileWriter(propFile);
m_offsetProperty.store(fw, null);
}
/**
* Write offset to properties file writePath/offset.properties.
*/
private void setOffsetProperty() {
m_offsetProperty.setProperty("offset", String.valueOf(m_offset));
m_offsetProperty.store(new FileOutputStream(m_writePath + "lastOffset.properties"), null);
}
}
プロパティ ファイルが作成され、書き込まれていますが、なんらかの理由でオフセット キーの値を読み取ることができません。また、プロパティ ファイルには、その 1 つのキーと値のペアのみが含まれます。簡単にするために、例外処理と他の多くのメソッドを取り出しました。何か案は?