任何人都可以解释为什么这段代码不起作用?为什么不在给定目的地中创建文件?相反,它只输出groupId而不是创建语句。
任何帮助或指导都将受到高度赞赏。
List<String> groupList = userGroupAuthor.getPredefinedGroupList();
String groupId;
for (String groupName : groupList) {
groupId = StringHelper.makeGroupId(groupName);
System.out.println(groupId);
//writeGroupName(groupId, groupName);
File f = new File(testScriptName);
try{
boolean fvar = f.createNewFile();
if(fvar){
System.out.println("File Created");
}else {
System.out.println("Not Created");
}
}
//bw = new BufferedWriter(new FileWriter(f));
catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
答案 0 :(得分:0)
如果我理解了这个问题,那就是为什么同一个文件名testScriptName
会在每次运行时产生“Not Created”消息。
JavaDoc for File.createNewFile州:
以原子方式创建一个由此抽象路径名命名的新空文件,当且仅当具有此名称的文件尚不存在时。检查文件是否存在以及文件的创建(如果不存在)是针对可能影响文件的所有其他文件系统活动的原子操作。 [强调补充]
由于在循环中使用相同的文件名,如果文件已经存在,它将失败,这将在第一次运行后出现。
要解决此问题,请将文件创建移到循环外部,或者为每个组使用唯一的文件名。代码中提供的逻辑不足以确定意图。