无法在给定列表中的特定文件夹中创建文件

时间:2017-05-04 20:30:58

标签: java file oop

任何人都可以解释为什么这段代码不起作用?为什么不在给定目的地中创建文件?相反,它只输出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();
    }
}

1 个答案:

答案 0 :(得分:0)

如果我理解了这个问题,那就是为什么同一个文件名testScriptName会在每次运行时产生“Not Created”消息。

JavaDoc for File.createNewFile州:

  

以原子方式创建一个由此抽象路径名命名的新空文件,当且仅当具有此名称的文件尚不存在时。检查文件是否存在以及文件的创建(如果不存在)是针对可能影响文件的所有其他文件系统活动的原子操作。 [强调补充]

由于在循环中使用相同的文件名,如果文件已经存在,它将失败,这将在第一次运行后出现。

要解决此问题,请将文件创建移到循环外部,或者为每个组使用唯一的文件名。代码中提供的逻辑不足以确定意图。