2012-11-27 49 views
6

Tôi đang sử dụng Eclipse để biên dịch và chạy mã java của mình.Ngoại lệ trong chủ đề "chính" java.io.FileNotFoundException: Lỗi

Đây là lỗi tôi gặp phải.

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) 

Đây là Mã của tôi

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
Tôi đã tạo ra file.txt trong cùng một thư mục trong dự án của tôi.

+0

Tệp của bạn có trực tiếp trong thư mục dự án của bạn không? –

+0

nó là dưới SCR, tôi đặt một trong bin là tốt, bởi vì scr đã không làm việc. – Mowgli

+1

Hãy thử in 'tệp mới (" tệp.txt "). Tồn tại()' Có phải nó cho ra 'true' không? nếu không, hãy thử in 'tập tin mới (" file.txt "). getAbsoluteFile()' Có phải những gì bạn mong đợi không? – amit

Trả lời

19

Tệp của bạn phải nằm trong thư mục dự án chứ không phải bên trong bất kỳ thư mục con nào khác.

Vì vậy, nếu thư mục dự án của bạn là MyProject, đó là cấu trúc thư mục (không hoàn thành mặc dù) nên được như thế: -

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

Không nên thư mục.


Hoặc, bạn có thể cung cấp cho các đường dẫn sau tương đối so với thư mục dự án để tìm kiếm các tập tin trong src folder: -

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

Cái này phù hợp với tôi. + đến @Rohit –

+0

Ah rực rỡ. Không đoán được. – gbhall

5

Hãy thử đi qua các đường dẫn đầy đủ đến tập tin, nói:

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

Hoặc nếu bạn đang ở trong cửa sổ:

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

Hoặc làm theo cách tiếp cận Jains @rohit hoặc cung cấp cho các đường dẫn tuyệt đối cho tập tin của bạn như:

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

+1 Xem xét sử dụng dấu gạch chéo chuyển tiếp '/' thay vì dấu gạch chéo ngược \. –

+0

@ Eng.Fouad cảm ơn, tôi sẽ cập nhật câu trả lời :) – PermGenError

1

Trong Windows cố gắng đưa ra con đường thực như thế này

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

Nó làm việc cho tôi.

Các vấn đề liên quan