2012-04-30 64 views
0

我在寫一個Java程序,它具有工作的文件拖放GUI。所有在DnD GUI中拖動的文件都放入一個保存文件名的字符串數組中。我有這種方法,通過在陣列循環和條路徑中僅留下的文件名,然後發送文件名(掃描儀)的方法和所期望的輸出文件名(對於PrintWriter的)在每個循環結束:Java方法無法拾取文件

public void fileGenerator(String in, String out) {   
    try { 
    String current_directory = System.getProperty("user.dir"); 
    Scanner input = new Scanner(new FileReader(current_directory+"/"+in)); 
    PrintWriter output = new PrintWriter(current_directory+"/"+out); 
     while(input.hasNext()) { 
      String line = input.nextLine(); 
      output.println(line); 
     } output.close(); 
    input.close(); 
    } catch (FileNotFoundException e) { 
     System.out.println(e.getMessage()); 
    } 
} 

的代碼無法正常工作,也不會產生輸出文件。我得到一個「沒有這樣的文件或目錄」錯誤的完整路徑...我已經在終端測試它,這是正確的道路。任何輸入讚賞。

我應該注意到,所有的Java源文件,類和輸入文件都在同一個目錄中。

謝謝!

回答

1

我看到的第一個問題是你忽略了的異常,因此,如果打開輸入文件成功,你不知道。即使您不知道如何處理它們,也不要忽略例外情況,將它們打印出來,以便稍後分析您的問題。

其次,調試代碼,看看那裏得到一個例外,如果有的話,看看有哪些每一步的值。

第三,要回答你的問題,假設你使用Eclipse工作,如果你指的是相對路徑的文件,工作目錄是不是源/類文件夾,但該項目的文件夾。

+0

我剛剛編輯了這個問題 - 沒有錯誤發生,我應該注意到。我不使用Eclipse,我使用Geany/Gedit,所以它非常直接...所有的文件都在一個地方,調用這個生成器的方法完全剝離了路徑,只留下文件名。謝謝你的評論...你有什麼想法嗎? – user1062058

+0

看看這個問題:http://stackoverflow.com/questions/4871051/getting-the-current-working-directory-in-java – MByD

+0

而且,通過一個空的catch塊,你可能會錯過任何拋出的錯誤在該方法中。 – MByD