【发布时间】:2016-04-22 04:22:03
【问题描述】:
我想覆盖 2 个文件。 这两个文件都存储有关我的内存数据库(HSQLDB)的信息: db.data 和 db.script
我的以下代码应该这样做:
public class DBReset {
public Path db_data = Paths.get("db_sep/db_backup/db.data");
public Path db_script = Paths.get("db_sep/db_backup/db.script");
public Path dest_data = Paths.get("db_sep/db.data");
public Path dest_script = Paths.get("db_sep/db.script");
public void discard() throws IOException {
Files.copy(this.db_data, this.dest_data, StandardCopyOption.REPLACE_EXISTING);
Files.copy(this.db_script, this.dest_script, StandardCopyOption.REPLACE_EXISTING);
}
}
但是如果我使用
public Class anotherClass {
new DBReset.discard();
// do something with DB
new DBReset.discard();
// do something other with DB
}
第二个discard() 不会覆盖我的文件。
我使用discard() 将我的数据库重置为其原始状态。请不要问/告诉我还有其他方法可以重置数据库,实际问题是为什么它不会覆盖我的文件。
【问题讨论】:
标签: java copy hsqldb overwrite