2011-01-27 46 views
1

这是我第一篇关于堆栈溢出的文章!我是Java新手,最近一直在尝试使用Java Buffered Reader for File I/O。我发现了一个例外,在线程缓冲读者文本文件?

异常“主要” java.io.FileNotFoundException

这里是我的代码示例:

System.out.println("Please input an existing filename, otherwise type in 0;"); 
fileName = input.nextLine(); 
if(fileName.compareTo("0") != 0) 
{ 
    BufferedReader inFile = new BufferedReader(new FileReader(fileName)); 

    firstName = inFile.readLine(); 
    lastName = inFile.readLine(); 
    phoneNumber = inFile.readLine(); 
    while (phoneNumber != null) { 
     c1[index] = new Contact(firstName,lastName,phoneNumber); 
     index++; 
     firstName = inFile.readLine(); 
     lastName = inFile.readLine(); 
     phoneNumber = inFile.readLine(); 
    } 
    inFile.close(); 
} 

我已经把我的txt文件在哪里了。类和.java文件(我正在使用Netbeans IDE)。 我输入“namelist.txt”作为fileName字符串的输入。

我把它放在错误的地方还是我错过了什么?

+2

类型以namelist.txt的完整路径作为输入。您需要将该文件放在应用程序的“工作目录”中 – 2011-01-27 15:08:27

回答

3

的Java找不到你fileName

fileName = input.nextLine(); 

指定哪些文件添加以下后fileName = input.nextLine();

System.out.println("Reading from: " + new java.io.File(fileName).getAbsolutePath()); 

打印出其中的Java尝试查找文件

1

使用getClass().getResourceAsStream(filename) - 这将解析相对于当前类位置(在类路径中)的文件名。因此您将获得InputStream。然后将其包装在InputStreamReader中,指定所需的编码。

当您传递一个文件名时,它将在您最不可能想要的默认目录中查找。

+0

非常感谢! – n00b 2011-01-27 15:16:31