【发布时间】:2019-01-31 14:21:09
【问题描述】:
我在这里看到了这个问题How to create a file in a directory in java?
我有一个创建二维码的方法。该方法被调用多次,取决于用户输入。
这是一个代码sn-p:
String filePath = "/Users/Test/qrCODE.png";
int size = 250;
//tbd
String fileType = "png";
File myFile = new File(filePath);
问题:如果用户输入“2”,那么这个方法会被触发两次。 结果,第一个 qrCODE.png 文件将被第二个 qrCODE.png 替换,所以第一个丢失了。
如何生成多个不同名称的二维码,如 qrCODE.png 和 qrCODE(2).png
我的想法:
if (!myFile.exists()) {
try {
myFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
有什么建议吗?
编辑:我通过使用 for 循环并在每个循环步骤中增加文件名中的数字来解决它。
【问题讨论】:
-
为什么不在保存之前测试文件是否存在,如果存在则递归尝试使用 filename+(2) ?
-
File.createTempFile("qrCODE", ".png", new File("/Users/Test")); -
可能使用文件名中的时间戳:
System.currentMillis()或使用UUID