是的你可以 :)。
首先,您可以扩展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"))));