2017-05-04 131 views
0

任何人都可以解釋爲什麼此代碼不會工作嗎?爲什麼它不在給定的目的地創建文件?相反,它只是輸出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

這與C有什麼關係? –

回答

0

如果我的理解這個問題,這就是爲什麼相同的文件名testScriptName是導致每次運行一個「未創建」消息。

JavaDoc for File.createNewFile狀態:

原子地創建由此抽象路徑名命名當且僅當這個名稱的文件尚不存在的新的空文件。如果文件不存在,則檢查文件是否存在以及是否創建該文件,這是一個針對可能影響文件的所有其他文件系統活動的原子操作。 [着重點]

由於在循環內部使用了相同的文件名,如果文件已經存在,它會在第一次運行後失敗。

要解決這種情況,可以將文件創建移到循環之外,或者爲每個組使用唯一的文件名。代碼中沒有提供足夠的邏輯來確定意圖。

相關問題