Входной файл основного метода продолжает давать мне IndexOutOfBoundsException (даже с правильными аргументами) - PullRequest
0 голосов
/ 08 декабря 2011

Я пытаюсь использовать args[0] в качестве входного файла, но когда я запускаю программу, я получаю IndexOutOfBoundsException, хотя я совершенно уверен, что args[0] является правильным аргументом. Я столкнулся с этой проблемой и с моей последней программой, но я не могу понять, что я делаю неправильно.

Код:

import java.io.*;
import java.util.NoSuchElementException;
import java.util.Scanner;

public class SortTest {
public static void main(String args[]) throws FileNotFoundException {
    try {
        Scanner read = new Scanner(new File(args[0]));

        while (read.hasNextLine()) {
            String name = read.nextLine();
            read.nextLine();

            String line1 = read.nextLine();
            int sh = Integer.parseInt(line1.substring(0,2));
            int sm = Integer.parseInt(line1.substring(3));
            read.nextLine();
            String line2 = read.nextLine();
            int fh = Integer.parseInt(line2.substring(0,2));
            int fm = Integer.parseInt(line2.substring(3));

            if (fh<sh) {
                System.out.println("Times not in correct order.");
                return;
            } else if (fh==sh) {
                if (fm<sm) {
                    System.out.println("Times not in correct order.");
                    return;
                }
            } else {
                System.out.println(name + "\n" + sh + ":" + sm + "\n" + fh + ":" + fm);
            }

        }
        read.close();
    }
    catch (FileNotFoundException e) {
        System.out.println("Invalid file path.");
    }
    catch (NoSuchElementException n) {
        System.out.println("No readable text in file.");
    }
    catch (IndexOutOfBoundsException x) {
        System.out.println("Proper format is java LectureSortTest <input>");
    }
    catch (NumberFormatException num) {
        System.out.println("File contents not formatted correctly");
    }
}
}
...