2012-09-14 5 views
10

クラスと同じパッケージにある "Words.txt"から読みたい場合はどうすればいいですか?単にScanner = new Scanner(new File("Words.txt"));を実行するとエラーが返されます。Java - 同じパッケージからファイルを取得する

+6

は、プロジェクトのルートに.txtファイルを入れてみてください。テキストファイルは特定のパッケージ内のファイルと同じフォルダに置くことができますが、実際にはパッケージの一部にはなりません。代わりに、ファイルシステムから(あるいは、jarファイルまたはwarファイルから)ロードする必要があります。 – Marvo

+0

これは機能しました。ありがとう! –

答えて

0

テキストファイルと仮定すると、あなたが

Scanner scanner = new Scanner(getClass().getResourceAsStream("Words.txt")); 

を行うことができ、むしろ.javaファイルよりも、.classと同じディレクトリにあるあなたは、現在の作業ディレクトリ内のファイルを探しますが何をしています。あなたのプログラムをビルドするとき、これは通常あなたのプログラムのルートディレクトリです。スタンドアローンプログラムとして実行する場合、通常はプログラムが開始されたディレクトリです。

+1

すべての回答がちょうど別のものに基づいているのか、ちょうど変更されたメソッド名に基づいているのか分かりませんが、それは 'getClass()。getResourceAsStream(" Words.txt ")' – Winter

+0

です。ありがとうございました。 –

15
InputStream is = MyClass.class.getResourceAsStream("Words.txt"); 
... 
+0

は、このコードを使用するJARをインポートする場合に機能します – kommradHomer

2
Scanner = new Scanner(new File("/path/to/Words.txt")); 

ファイル()コンストラクタ内の引数は、それsがクラッセのパッケージに依存しない、あなたのVMが実行されているシステムからの相対パスです。

あなたごwords.txtは、あなたがここで見ることができますあなたの戦争でパッケージ化リソースの場合:Load resource from anywhere in classpath

0
Scanner scanner = new Scanner(getClass().getResourceAsInputStream("Words.txt")); 

String s = new String(); 

while(scanner.hasNextLine()){ 


     s = s + scanner.nextLine(); 


} 
+0

あなたは 'getClass()。getResourceAsStream(" Words.txt ")' – Winter

関連する問題