2012-04-08 16 views
3

私は、入力ファイルを見つけるのに最も基本的なステップで困惑してしまうまで、入力ファイルをJavaで読み込むのは面倒です!メインの 『java.langの入力ファイルが見つかりません

「スレッドでの例外』:

INPUT.TXTファイルはまだ私にそれを見つけることカントというエラーを与える日食はまだそれを呼び出している私のクラスファイルと同じディレクトリにあります。エラー:未解決のコンパイルの問題: 未処理の例外型にFileNotFoundException」

マイコード:

package pa; 
import java.util.Scanner; 

public class Project { 
public static void main(String[] args) { 
    java.io.File file = new java.io.File("input.txt"); 
    System.out.println(file.getAbsolutePath()); 
    Scanner input = new Scanner(file); 
} 
} 

INPUT.TXTは、同じパッケージ、同じフォルダとすべてのものです。

java.io.File file = new java.io.File("C:\\My Documents\\User\\input.txt"); 

をまた、このようなmain()メソッド宣言します:あなたがしたいと思います。通常

public static void main(String[] args) throws FileNotFoundException { 

を私は例えば、ファイルの絶対パスにしてください:(

+0

がファイルを作成してみてくださいし、新しく作成されたファイルが同じフォルダ内に作られているかどうかを確認例外処理についての詳細を学ぶことができます。 "input.txt"のようなパスを与えるとjavaコンパイラは$ PWD/input.txtになります。$ PWDはクラスファイルが実行されたパスです。 – Shivam

答えて

4

あなたのプロジェクトのルートフォルダです。そのファイルをnetbeansで見つけるには、new File("src/pa/input.txt")とする必要があります。

+0

それは問題です!ありがとう! –

+1

'/'と '\'の代わりに '' File.separator''を使用して、移植性を可能にすることに注意してください。 – MByD

+0

問題ありません。また、スキャナではなくFileInputStreamの使用をお勧めします。 – MarioDS

1

混乱しています

1

eclipseを使用する場合、作業ディレクトリはクラスのディレクトリではなくプロジェクトディレクトリです

次の方法で作業ディレクトリを取得することができます:私は日食については知らないが、パスをNetBeansでは、あなたのクラスが含まれているパッケージ(フォルダ)から起動しない

File f = new File("."); 
System.out.println(f.getAbsolutePath()); 
0

クラスファイルが生成されているフォルダを参照してください。 input.txtファイルがそのフォルダにない場合は、そこに置き、コードを再度実行してみてください。

+0

それは同じフォルダにあったので、なぜこれが起こったのか分かりません。私は新しいプロジェクトを作ってしまい、デフォルトのパッケージ名でクラスを離れるだけで、うまくいきました。なぜこれが機能したのですか?私は決して知りません。入力は常にクラスと同じフォルダにあったので、Javaファイルと同じフォルダに –

+0

というものがあったのを知りません。 .classファイルが生成されていたフォルダを確認しましたか? – sul

1

「処理されていない例外の型FileNotFoundException」というエラーは、main()メソッドの例外処理によって解決できます。コードに次のコマンドを追加します。

public static void main(String[] args) throws FileNotFoundException 

input.txtファイルの場所を取得する必要があります。

あなたがhere.

乾杯

関連する問題