我有一个存储测试问题的文件。
"Test.ser"
我希望能够创建具有相同名称的文件,但每次有人使用Test来存储答案时都会附加一些递增器。
"Test1.ser"
"Test2.ser"
...
但是,我想不出实现这个的方法。计数器可以工作,但如果有人重新运行程序,计数器将重置。
有没有人知道这是怎么回事?非常感谢!
编辑:
int count = 1;
while (searching) {
fileName = survey.name + Integer.toString(count) + ".ser";
f = new File(fileName);
if(f.exists()) {
count++;
} else {
searching = false;
}
} // Proceed to use file name
无法通过file_name1.ser
增加它答案 0 :(得分:4)
我建议您使用String.format(String, Object...)
,File.exists()
等
public static void main(String[] args) {
String fmt = "Test%02d.ser";
File f = null;
for (int i = 1; i < 100; i++) {
f = new File(String.format(fmt, i));
if (!f.exists()) {
break;
}
}
try {
System.out.println(f.getCanonicalPath());
} catch (IOException e) {
e.printStackTrace();
}
}
修改
正如评论中指出的那样,这只重试了100次。如果您想支持超过100次重试,可以编写for
循环,如
for (int i = 1;; i++)
答案 1 :(得分:2)
解决此问题的简单方法是将日期和时间附加到您的文件名中。
例如使用格式(YYYYMMDD-HHMM):
Test-20141122_2058.ser
Test-20141123_1931.ser
Test-20141123_2157.ser