2016-09-18 3 views
0

Java Netbeansプロジェクト内のテキストファイルにアクセスしようとしていますが、ファイルが見つかりません。ClassLoader.getSystemResource( "file.txt")でアクセスされたsrc resources内のファイルにファイルが見つかりません

"src \ ...."、 "resources \ ..."というファイル名を指定して、ファイル名のみを使用してみました。

static class Task extends TimerTask { 
    // Load the directory as a resource 
    URL dir_url = ClassLoader.getSystemResource("word_list_moby_credits.txt"); 
    // Turn the resource into a File 
    File f = new File(dir_url.getFile()); 

    Scanner scanner = new Scanner(f); 

私は上記のコードの最後の行に

を見つけていない

ファイルを取得しています:

は、これは私のコードです。

これは私のプロジェクトです:

enter image description here

enter image description here

+0

良い最初のステップは、 'dir_url'を調べてファイルの実際の場所と一致することを確認することです。 – JLewkovich

+0

@JLewkovichありがとうございます。つまり、ファイルは上記のスクリーンショットのプロジェクトディレクトリにあります。私はそれを手作りで置いた。私はあなたのコメントの後にそれがまだそこにあることを確認するために再度チェックしました。 –

+0

私はコードをデバッグし、実行時に 'URL dir_url'を検査して、手動でファイルを置く場所と一致することを保証しました。 – JLewkovich

答えて

2

{ソースパッケージ} /リソースにwords.txtを読み取るために、これを試してください:

public static void main(String[] args) { 
    try{ 
     URL url = Task.class.getResource("/resources/words.txt"); 
     Scanner scanner = new Scanner(url.openStream()); 
     System.out.println("" + scanner.next()); 
    } catch(IOException ex) { 
     ex.printStackTrace(); 
    } 
} 

場合、あなたはすでに他の主なメソッドを持っていて、このコードをメソッドの外に残しておきたい場合は、静的ブロックでラップできます:

static class Task extends TimerTask { 
    static { 
     try { 
      URL url = Task.class.getResource("/resources/words.txt"); 
      Scanner scanner = new Scanner(url.openStream()); 
      System.out.println("" + scanner.next()); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 
+0

ありがとうございます。私がコードを使ってファイルを参照するこの方法を使用すると、同じエラーが発生します。コードをこのコードブロックに置き換えると、IOExceptionの報告されていない例外があり、自動的に修正するオプションが表示されないことがIDEから伝えられます。 –

+0

try {} catch(Exeption e){}ブロックでこのコードをラップすることができます。私はNetbeansでこのコードを実行し、うまくいきました。 – ThoQ

+0

私の更新を見てください。 – ThoQ

関連する問題