'while (Scanner.hasNextLine ())' пропускается, даже если существует больше строк? - PullRequest
0 голосов
/ 01 апреля 2020

Код, показанный ниже, должен читать каждую строку отдельно из текстового файла, сохранять текущую строку в String fileLine и затем распечатывать содержимое fileLine

Когда текстовый файл содержит только one строка, код выполняется как описано, печатает строку. Однако, когда текстовый файл содержит больше, чем одну строку, оператор ' while (s c .hasNextLine ()) ' полностью пропускается, из-за чего я почесал голову как Я использую аналогичную версию этого кода для чтения из других текстовых файлов в том же проекте.

Код

private File stockFile = new File(stockFilePath);

public void fetchCurrentStock() throws FileNotFoundException {
        Scanner sc = new Scanner(stockFile);
        String fileLine = "";
        //Name\tPrice\tDescription\tSupplierName\tItemImagePath\tItem_ID\tQuantity
        while(sc.hasNextLine()){
            fileLine = sc.nextLine();
            System.out.println(fileLine);
        }
   }

Содержание текстового файла

Samsung Galaxy S20+ 999 Samsung's latest & greatest PhonesHub   null    001 20
Samsung Galaxy A10  130 Capture clear photos, in any light. Watch, play and browse more on the 6.2 inch HD+ display.    PhonesHub   null    002 25
Samsung Galaxy S10  750 Last years base flagship model, great power at a respectable price. PhonesHub   null    003 30
Huawei P30      380 Take your photography to the next level with the P30’s triple camera & 6.1 inch display.    PhonesHub   null    004 15

Обновление: оно Кажется, что когда в текстовом файле меньше текста на строку, Scanner.nextLine () работает как задумано. Возможно, использование класса Scanner здесь не вариант?

1 Ответ

0 голосов
/ 01 апреля 2020

Похоже, это проблема с моей текущей версией (или, более вероятно, моей конфигурацией ) IntelliJ IDE . При запуске инструмента отладки для исследования, while l oop мгновенно вернет false.

После импорта проекта в Eclipse код функционировал должным образом. Я также могу встроить свою версию проекта IntelliJ в JAR-файл, и он будет работать там, где и предполагалось, так что в настоящее время это будет мой обходной путь.

...