缓冲读者文本文件?

时间:2011-01-27 15:05:25

标签: java file-io

这是我关于堆栈溢出的第一篇文章!我是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字符串的输入。

我把它放在错误的区域还是我错过了什么?

2 个答案:

答案 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中,指定所需的编码。

当你传递文件名时,它会在你很可能不想要的默认目录中查找。