2017-09-29 19 views
-2

这是试图解析传入文件时,我遇到了错误:尝试使用缓冲读取器在java中输入文件。获得一个FileNotFoundError

错误在解析文件。 java.io.FileNotFoundException:input.txt的是java(系统找不到指定的文件 ) 在java.io.FileInputStream.open0(本机方法) 在java.io.FileInputStream.open(来源不明) 。 io.FileInputStream。(未知来源) 在java.io.FileInputStream中。(未知来源) 在java.io.FileReader。(未知来源) 在MovieDatabaseManager.parseInputFile(MovieDatabaseManager.java:47) 在MovieDatabaseManager。(MovieDatabaseManager的.java:32) 在MovieDatabaseManager.main(MovieDatabaseManager.java:206)

这是代码:

public MovieDatabaseManager(String file) 
{ 
    this(); 
    parseInputFile(file); //populates database with list of movies 
} 

/** 
* Parses the input file so that you can add all of items found in the list 
in alphabetical order by title. 
*/ 
private void parseInputFile(String file) 
{ 
    //Create a file input stream 
    Movie m; 
    String instr; 

    try 
    { 
     //Create input reader 
     BufferedReader in = new BufferedReader(new FileReader(file)); 
     while (in.ready()) 
     { 
      instr = in.readLine(); 

      //Try to parse the movie using the appropriate movie 
      //constructor. If it fails, an exception is caught 
      try 
      { 
       m = new Movie(instr); 

       //////////////////////////////////////////////////// 
       //Add code to insert m here into your list 
       //////////////////////////////////////////////////// 

      } 
      catch (InvalidMovieException e) 
      { 
       System.out.println("Invalid movie string " + instr + " in 
`enter code here`file " + file); 
      } 

     } 
    } 
    catch (IOException io) 
    { 
     System.err.println("Error in Parsing file."); 
     io.printStackTrace(); 
    } 
    } 
+5

您的文件路径可能不正确 – notyou

+0

@pruntlar说了些什么。你的程序几乎肯定不在文件的正确位置。 – Scrambo

+0

您需要了解*相对文件名*和当前目录*是什么。它们并不特定于Java,而是在您可以有效使用文件之前必须了解的一般计算概念。 – VGR

回答

-1

您需要使用资源的完全限定路径名来获取它。

实施例:C:/dur/dir/file.txt

否则,可用于文件中执行的jar文件的相同的层次结构相对路径。

+1

相对路径相对于当前工作目录。它与'执行的jar文件的相同层次'无关。 – EJP

+0

当从Jar运行Jar时,它从工作目录中的Eclipse运行时,如果使用getClass()。getResource()它从类路径 –

相关问题