2017-01-14 58 views
-2

嘿,所以我現在有這個代碼的問題:有更多的代碼到這一點,但這個是我需要幫助塊]Java的目錄搜索 - 文本文件作家 - 只有1結果顯示

File fe = new File("C:\\Users\\" + System.getProperty("user.name") + "\\desktop" + "\\SearchResults.txt"); 
    String customLoca = "C:\\Users\\" + System.getProperty("user.name") + "\\desktop"; 



    File dir = new File(customLoca); 
    for (File f : dir.listFiles()){ 
     if (f.getName().contains(".jar")) 
     if (f.getName().endsWith(".jar")) 
      try{ 

       FileWriter fw = new FileWriter(fe); 
       fw.write("[!]Found: " + f.getName() + "[!]"); 
       fw.write("\r\n"); 
       fw.write("[!]Found: " + f.getName() + "[!]"); 
       fw.close(); 

      }catch(Exception ex){ 
    } 

} 
} 

} 

我希望它打印所有的結果但只打印1

https://gyazo.com/406ab3039f3efa8f72d3dfff5732c088

你知道一種方法,我可以把它所以它打印所有的結果?謝謝。

回答

0

問題是您正在循環內創建文件編寫器對象。所以它將取代以前的結果,因此只有最後的結果將出現在searchResults.txt中。

要修復for loop

超出此問題的舉動FileWriter fw = new FileWriter(fe);另外請注意,你不需要在2個if條件兩者。

如果if (f.getName().contains(".jar"))爲true,那麼 if (f.getName().endsWith(".jar"))也會返回true,並且在if語句後面還缺少大括號。

File dir = new File(customLoca); 
    for (File f : dir.listFiles()){ 
    if (f.getName().endsWith(".jar")) { 
     try{ 

      FileWriter fw = new FileWriter(fe); 
      fw.write("[!]Found: " + f.getName() + "[!]"); 
      fw.write("\r\n"); 
      fw.write("[!]Found: " + f.getName() + "[!]"); 
      fw.close(); 

     }catch(Exception ex){ 
} 
} 
} 
0

您正在嘗試創建FileWriter的實例並在每次創建時關閉它。因此,您必須將fw.close();並在for循環外定義FileWriter實例。

File fe = new File("C:\\Users\\" + System.getProperty("user.name") + "\\desktop" + "\\SearchResults.txt"); 
    String customLoca = "C:\\Users\\" + System.getProperty("user.name") + "\\desktop"; 

    FileWriter fw = new FileWriter(fe); 

    File dir = new File(customLoca); 
    for (File f : dir.listFiles()) { 
     if (f.getName().endsWith(".jar")) { 
      try { 
       fw.write("[!]Found: " + f.getName() + "[!]"); 
       fw.write("\r\n"); 
       fw.write("[!]Found: " + f.getName() + "[!]"); 
      } catch (Exception ex) { 
       ex.printStackTrace(); 
      } 
     } 
    } 
    try { 
     fw.close(); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
+0

現在說斜面決心FW給一個變量https://gyazo.com/d86cf59dfff420c0247aff86bb0a72fb – harry

+0

現在說斜面決心FW給一個變量 – harry

+0

把'FileWriter的FW =新的FileWriter(FE);'外供循環。 – Derin