Я использую файл .txt, в котором данные отформатированы одинаково.
Например:
- название | формат | onLoan | loanedTo | loanedOn
- название | формат | onLoan | loanedTo | loanedOn
- название | формат | onLoan | loanedTo | loanedOn
- название | формат | onLoan | loanedTo | loanedOn
Я открываю файл и затем пытаюсь передать эту информацию в объект класса, а затем помещаю этот объект в arrayList этого класса.
У меня проблема со старым ArrayIndexOutOfBoundsException. Я не уверен, что вызывает это. Это наверное что-то простое. Любое руководство будет оценено.
java.lang.ArrayIndexOutOfBoundsException: 1
at Library.open(Library.java:230)
Scanner input = null;
String mediaItemString = "";
MediaItem open = new MediaItem(); //class created for this object
String[] libraryItem;
//try catch block for exception handling
try {
input = new Scanner(new File("library.txt"));
while (input.hasNextLine()) {
mediaItemString = input.nextLine();
libraryItem = mediaItemString.split("\\|");
System.out.println(libraryItem[0].toString());
System.out.println(libraryItem[1].toString()); //error here, line 230
System.out.println(Boolean.parseBoolean(libraryItem[2].toString()));
System.out.println(libraryItem[3].toString());
System.out.println(libraryItem[4].toString());
open.setTitle(libraryItem[0].toString());
open.setFormat(libraryItem[1].toString());
open.setOnLoan(Boolean.parseBoolean(libraryItem[2].toString()));
open.setLoanedTo(libraryItem[3].toString());
open.setDateLoaned(libraryItem[4].toString());
items.add(open);
}
} catch (FileNotFoundException e){
System.out.println("There was an error with the file.");
} finally {
input.close();
}
Что ж, я надеялся разбить строку разделителями и затем соответствующим образом назначить эти значения MediaItem.