я пытаюсь прочитать ввод целых чисел, таких как
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?
Хорошо. Потому что файл не найден. Убедитесь, что вы нашли файл по правильному пути. Вы можете распечатать текущий путь во время выполнения, например, System.out.println(Paths.get(".").toAbsolutePath());




Используйте абсолютный путь для 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, хотя
неважно, я понял. благодарю вас!
Взгляните на этот код:
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++;
}
Используйте полный путь к файлу, а не только huhu.txt