2012-11-27 12 views
6

Używam Eclipse do kompilowania i uruchamiania moich kodów Java.Wyjątek w wątku "główny" java.io.FileNotFoundException: Błąd

Oto pojawia się błąd.

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) 

Oto mój kod

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); 
     } 

    } 
} 

plik.txt
Stworzyłem plik.txt w tym samym folderze, w moim projekcie.

+0

Czy twój plik znajduje się bezpośrednio pod twoim folderem projektu? –

+0

jest pod SCR, ja też wkładam pod bin, bo scr nie działa. – Mowgli

+1

Spróbuj wydrukować 'nowy plik (" plik.txt "). Istnieje()' Czy daje 'prawda'? jeśli nie, spróbuj wydrukować 'nowy plik (" file.txt "). getAbsoluteFile()' Czy tego się spodziewałeś? – amit

Odpowiedz

19

Twój plik powinien znajdować się bezpośrednio w folderze projektu, a nie w innym podfolderze.

Dlatego, jeśli projekt jest MyProject folderu, to struktura folderów (nie ukończyć chociaż) powinno być: -

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

Nie powinno być folderu.


Albo można podać następującą ścieżkę względem katalogu projektu, aby wyszukać plik w src folder: -

new File("src/file.txt"); 
+0

Ten działa dla mnie. + do @Rohit –

+0

Ah genialny. Nie zgadł. – gbhall

5

Spróbuj przekazując pełną ścieżkę do pliku, powiedzmy:

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

lub jeśli jesteś w oknach:

new File("C:/Users/mogli/docs/file.txt") 
2

Albo śledzić @rohit podejście Jains lub dać bezwzględną ścieżkę do pliku jak:

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

+1 Rozważ użycie ukośnika "/" zamiast ukośnika \. –

+0

@ Eng.Fouad dzięki, będę aktualizować odpowiedź :) – PermGenError

1

W Windows spróbuj podać prawdziwe ścieżki jak to

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

pracował dla mnie.

Powiązane problemy