web-dev-qa-db-ja.com

スレッド「メイン」の例外Java.io.FileNotFoundException:エラー

私はEclipseを使用して、Javaコードをコンパイルおよび実行しています。

ここにエラーが表示されます。

Exception in thread "main" Java.io.FileNotFoundException: file.txt (The system cannot find the file specified)
    at Java.io.FileInputStream.open(Native Method)
    at Java.io.FileInputStream.<init>(Unknown Source)
    at Java.util.Scanner.<init>(Unknown Source)
    at helloworld.main(helloworld.Java:9)

これが私のコードです

import Java.io.File;
import Java.io.IOException;
import Java.util.Scanner;


public class helloworld {

    public static void main(String[] args) throws IOException {
        Scanner KB = new Scanner(new File("file.txt"));
        while (KB.hasNext()) {
            String line = KB.nextLine();
            System.out.println(line);
        }

    }
}

File.txt
プロジェクトの同じフォルダにfile.txtを作成しました。

9
Mowgli

ファイルは、他のサブフォルダー内ではなく、プロジェクトフォルダーの下に直接配置する必要があります。

したがって、プロジェクトフォルダーがMyProjectの場合、そのフォルダー構造(ただし完全ではありません)は次のようになります。-

MyProject +- src +
          |      |
          |      +-- Your source file
          +- file.txt

under srcフォルダーにすることはできません。


または、src folderでファイルを検索するために、プロジェクトフォルダーに関連する次のパスを指定できます:-

new File("src/file.txt");
23
Rohit Jain

次のように、ファイルへの完全なパスを渡してみてください。

new File("/usr/home/mogli/file.txt")

または、Windowsの場合:

new File("C:/Users/mogli/docs/file.txt")
5
Óscar López

@rohit Jainsのアプローチに従うか、次のようにファイル絶対パスを指定します。

 Scanner KB = new Scanner(new File("C:/JsfProjects/Project/file1.txt"));
            while (KB.hasNext()) {
                String line = KB.nextLine();
                System.out.println(line);
            }
2
PermGenError

Windowsでは、このような実際のパスを指定してみてください

"C:\\Users\\mogli\\docs\\file.txt"

それは私のために働いた。

1
Sahal