是的你可以 :)。
首先,您可以扩展Properties和覆盖store()方法。但是这种方式太复杂了。
你可以做得更好。检查源代码store()。它调用store()实际完成工作的私有方法。该方法调用
bw.write("#" + new Date().toString());
在一开始的时候。你不想看到这条线。这意味着您必须实现自己的BufferedWriter忽略第一行打印。
public class IgnoreFirstLineBufferedWriter extends BufferedWriter {
private int lineCouner = 0;
// constructors - implement them yourself
@Override
public void write(String str) throws IOException {
if (lineCounter > 0) {
super.write(str);
}
lineCounter++;
}
}
现在,您可以BufferedWriter在包装FileOutputStream和调用时使用此自定义store():
props.store(new IgnoreFirstLineBufferedWriter(new OutputStreamWriter(new FileOutputStream("myprops.properties"))));