2013-02-08 74 views
0

类似问题处理C:驱动器上的文件,其中对文件路径进行硬编码是可接受的答案。此应用程序是移动的,并且对文件路径进行硬编码是不实际的。FileNotFoundException文件存在于与程序相同的文件夹中

我想通过扫描仪导入一个文本文件,其中包含一个字符串列表,每行15个字符,每行1个。线条很多。文件名是a.txt

我把它用

File data = new File("a.txt"); 
Scanner in = new Scanner(data); 

重复下面 “b.txt” 的台词,使用不同的对象名称。

然而,当我建立的程序,我得到(使用在Jcreator IDE)这个错误日志:

--------------------Configuration: <Default>-------------------- 
E:\Simple Encryption\Simple_Encryption.java:17: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown 
    Scanner in = new Scanner(data); 
       ^
E:\Simple Encryption\Simple_Encryption.java:18: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown 
    Scanner numsIn = new Scanner(nums); 
        ^
2 errors 

Process completed. 

程序是文件夹E:/Simple Encryption/,其中包含以下文件和文件夹:

  • Simple_Encryption.java
  • Simple_Encryption.class
  • lock.png(未使用)
  • A.TXT
  • b.txt(同样的错误a.txt进口,下面只是一条线)
  • /图片(文件夹,包含的icon.png)

没有什么别的文件夹中。我无法硬编码文件路径,因为在不同的计算机上,它具有不同的驱动器名称,并且稍后将在不同的文件夹下分发。 (这里(学校),这是E:驱动器上,在国内它是J:驱动器,并在工作中它是G:驱动器上。)

虽然我已经从现有的错误得到帮助,我需要进口在该程序启动,而不是只是跳过它。该文件以当前的形式存在,并且程序在没有它的情况下不能运行。

什么是造成此错误?我能做些什么来防止这种情况发生?

回答

1
E:\Simple Encryption\Simple_Encryption.java:17: unreported exception 
java.io.FileNotFoundException; must be caught or declared to be thrown 

至于你的异常说你需要使用试戴catch块

try { 
    Scanner numsIn = new Scanner(nums); 
catch (FileNotFoundException e) { 
    // do something 
} finally { 
    if (numsIn != null) numsIn .close(); 
} 

OR

你需要抛出该异常调用虽然方法

public static void xxxx() throws FileNotFoundException { 
    // do something 
} 
1

的问题并不是抛出的异常,但事实是, stuctor被宣布为抛出FileNotFoundException检查异常。

public Scanner(File source) throws FileNotFoundException 

由于它是一个检查异常,它必须由程序员处理,因为它被用来表示可能发生的事情。

所以,你必须用他们在一个try/catch声明:

Scanner in = null; 
try { 
    in = new Scanner(file); 
} 
catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
0

至于你说该文件存在,但它说,它无法找到该文件。试试这个:

System.out.println(data.getAbsolutePath()); 

这应该让你知道它的确切位置是要找的文件,然后你可以调整应用程序,而无需使用完整路径

相关问题