2012-04-30 8 views
0

ファイル用のドラッグ&ドロップGUIが動作するJavaプログラムを作成しています。 DnD GUIでドラッグされたすべてのファイルは、ファイル名を保持する文字列配列に格納されます。配列をループし、ファイル名だけを残すためにパスを取り除き、各ループの最後にこのメソッドにファイル名(Scanner用)と目的の出力ファイル名(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()); 
    } 
} 

コードが機能していないため、出力ファイルが生成されません。私は "No such file or directory"エラーを完全なパスで取得しています...ターミナルでテストしましたが、正しいパスです。すべての入力をいただければ幸いです。

すべてのJavaソースファイル、クラス、入力ファイルは同じディレクトリにあることに注意してください。

ありがとうございます!

答えて

1

最初の問題は、例外を無視して、入力ファイルが正常に開くかどうかわからないことです。例外を無視しないでください。たとえそれをどうしたらいいのか分からなくても、後で問題を分析できるように印刷してください。

第2に、コードをデバッグし、どこに例外があるかを確認します(各ステップの値が何であるか参照してください)。

第3に、Eclipseで作業すると仮定して、相対パスでファイルを参照すると、作業ディレクトリはソース/クラスフォルダではなくプロジェクトフォルダです。

+0

私はちょうど質問を編集しました - 私は注意すべきであったエラーはありません。私はEclipseを使用せず、Geany/Geditを使用するので、非常に簡単です...すべてのファイルが1か所にあり、このジェネレータを呼び出すメソッドはパスを完全に取り除き、ファイル名だけを残します。あなたのコメントをありがとう...あなたはもう考えを持っていますか? – user1062058

+0

この質問を見てください:http://stackoverflow.com/questions/4871051/getting-the-current-working-directory-in-java – MByD

+0

また、空のキャッチブロックによって、スローされたエラーをおそらく逃しますこの方法では – MByD

関連する問題