FileNotFoundException на Java

я пытаюсь прочитать ввод целых чисел, таких как

17
100
19
18

в файле .txt, но я всегда получаю FileNotFoundException. Он выведет результат

0000

если я запустил код ниже:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

public class umm {

    public static void main(String[] args) throws FileNotFoundException  {
        // TODO Auto-generated method stub


        Scanner scanner = new Scanner(new File("huhu.txt"));
        int [] tall = new int [100];
        int i = 0;
        while(scanner.hasNextInt())
        {
             tall[i++] = scanner.nextInt();
             System.out.print(tall[i]);
        }

        scanner.close();
    }

}

если я добавлю целые числа в файл .txt, чтобы он имел 6 таких целых чисел

17
100
19
18
2
5

он будет выводить

000000

Разве это не означает, что файл существует и может получить к нему доступ? но почему он продолжает говорить FileNotFound?

Используйте полный путь к файлу, а не только huhu.txt

Nicholas K 25.10.2018 15:58

Хорошо. Потому что файл не найден. Убедитесь, что вы нашли файл по правильному пути. Вы можете распечатать текущий путь во время выполнения, например, System.out.println(Paths.get(".").toAbsolutePath());

Mena 25.10.2018 15:59
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
2
58
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Используйте абсолютный путь для huhu.txt.

Вы можете увидеть, где ваша программа ищет huhu.txt, запустив этот код.

System.out.println("Working Directory = " +
              System.getProperty("user.dir"));

я сделал это и изменил строку на что-то вроде Scanner scanner = new Scanner (new File ("C: \\ Users \\ eleanor \\ workspace \\ something \\ huhu.txt")); но он все еще дает мне FileNotFoundException, хотя

eleanor 25.10.2018 16:09

неважно, я понял. благодарю вас!

eleanor 25.10.2018 16:11
Ответ принят как подходящий

Взгляните на этот код:

 tall[i++] = scanner.nextInt();
 System.out.print(tall[i]);

Элемент массива, который вы читаете, отличается от того, который вы печатаете (вы печатаете следующий, потому что i++ увеличил индекс).

Это объясняет весь получаемый вами 0.

Мне непонятно, как вы получаете FileNotFoundException.

это потому, что вы печатаете следующий элемент в массиве, который еще не затронут так что попробуйте это

 while(scanner.hasNextInt())
{
        tall[i] = scanner.nextInt();
        System.out.println(tall[i]);
        i++;
}

Другие вопросы по теме