Blue Pelican Java Project 24 Чтение файлов

Задание по проекту следующее:

Напишите класс с именем FileNerd, который будет вводить строки текста из файла с именем NerdData, хранящегося в папке temp_Larry (при условии, что вас зовут Ларри). После цикла ввода файла создайте цикл, в котором вы распечатываете только те строки, которые начинаются со слова «The».

Так это то, что у меня есть до сих пор

import java.util.*;
import java.io.*;
public class FileNerd
{
    public static void main (String args[]) throws IOException
    {
        Scanner sf = new Scanner(new File("C:\\temp_Larry\\NerdData.txt"));
        int maxIndx = -1;
        String text[] = new String[100 ];
        while(sf.hasNext())
        {
            maxIndx++;
            text[maxIndx]=sf.nextLine();
        }
        sf.close();

        for(int j = 0; j <= maxIndx; j++)
        {
            String q = text[j];

            if( q.substring(3).equals("The"))
            {
                System.out.println(q);
            }
        }
    }
}

Я не уверен, что я делаю неправильно, потому что он компилируется без синтаксической ошибки, но ничего не печатает.


person Adriana Rogers    schedule 25.10.2014    source источник
comment
каково содержимое NerdData.txt. Похоже, что ваш файл не содержит The   -  person Wade Anderson    schedule 25.10.2014


Ответы (1)


Несколько мыслей об отладке:

  • Вы можете написать дополнительные операторы System.out.println(debug_msg) по всему коду, чтобы понять, что происходит.
  • Когда вы добавляете эти строки отладки, вы обычно узнаете, как решить свою проблему.
  • Кроме того, вы можете использовать отладчик (в большинстве IDE он есть). Вы можете установить точки останова, чтобы остановить программу и пройтись по коду.

Глядя на ваш код, я не вижу явных ошибок. Я предлагаю добавить эту строку отладки, чтобы вы понимали, что происходит, и отлаживали ее самостоятельно.

for(int j = 0; j <= maxIndx; j++) {
     String q = text[j];
     // this will tell you what the contents of the line are
     System.out.println(q)

     if( q.substring(3).equals("The")) {
        System.out.println(q);
     }
}
person Wade Anderson    schedule 25.10.2014