Буферизированный текстовый файл Reader? - PullRequest
1 голос
/ 27 января 2011

это мой первый пост о переполнении стека! Я новичок в Java, и я недавно экспериментировал с Java Buffered Reader для файлового ввода-вывода. Я получаю исключение

Исключение в потоке "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 (я использую IDE Netbeans). И я набираю «namelist.txt» в качестве ввода для строки fileName.

Я помещаю его не в ту область или я что-то упустил?

Ответы [ 2 ]

3 голосов
/ 27 января 2011

Java не может найти файл, указанный в fileName

fileName = input.nextLine();

, после fileName = input.nextLine(); добавьте следующее:

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

, чтобы распечатать, где Java пытается найтиваш файл

1 голос
/ 27 января 2011

Использовать getClass().getResourceAsStream(filename) - это разрешит имя файла относительно текущего местоположения класса (в пределах пути к классам). Таким образом, вы получите InputStream. Затем оберните его в InputStreamReader, указав желаемую кодировку.

Когда вы передаете имя файла, оно будет найдено в каталоге по умолчанию, который вам, скорее всего, не нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...