这是我关于堆栈溢出的第一篇文章!我是Java的新手,我最近一直在尝试使用Java Buffered Reader for File I / O.我得到了一个例外
线程“main”中的异常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文件放在.class和.java文件所在的位置(我正在使用Netbeans IDE)。 我输入“namelist.txt”作为fileName字符串的输入。
我把它放在错误的区域还是我错过了什么?
答案 0 :(得分:3)
Java找不到您在fileName
fileName = input.nextLine();
在fileName = input.nextLine();
之后添加以下内容:
System.out.println("Reading from: " + new java.io.File( fileName ).getAbsolutePath());
打印出java尝试查找文件的位置
答案 1 :(得分:1)
使用getClass().getResourceAsStream(filename)
- 这将解析相对于当前类位置的文件名(在类路径中)。因此,您将获得InputStream
。然后将其包装在InputStreamReader
中,指定所需的编码。
当你传递文件名时,它会在你很可能不想要的默认目录中查找。