У меня есть следующий метод, который читает файл, в котором он имеет ID (INT) и Content (String), разделенные табуляцией. Мой метод читает файл строка за строкой, и с помощью вкладки разделители, я разобрать ID и строку в дважды связанный список как так:ArrayIndexOutOfBoundsException при чтении из файла
void readAndAssemble(String fileName)
{
Scanner sc;
try
{
sc = new Scanner(new File(fileName));
while (sc.hasNextLine())
{
String line = sc.nextLine();
String lines[] = line.split("\t");
int packetID = Integer.parseInt(lines[0]);
// -----------------------------------------
String packetContent = lines[1]; // gives error in terminal
// -----------------------------------------
DLLNode curr = header.getNext();
DLLNode prev = header;
while (packetID > curr.getPacketID())
{
prev = curr;
curr = curr.getNext();
}
DLLNode newNode = new DLLNode(packetID, packetContent, prev, curr);
prev.setNext(newNode);
curr.setPrev(newNode);
}
sc.close();
} catch (FileNotFoundException e)
{
System.out.println("File does not exist");
}
}
Этот метод отлично работает в Eclipse, когда я бегу это, но дает мне эту ошибку, когда я использую JAVAC и запустить его в терминале:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at DLL.readAndAssemble(DLL.java:40)
at MessageAssembler.main(MessageAssembler.java:11)
Где мой класс MessageAssembler выглядит следующим образом:
public class MessageAssembler
{
public static void main(String[] args)
{
DLL myDLL = new DLL();
myDLL.readAndAssemble("Mystery3.txt");
myDLL.printContent();
}
}
Что может быть причиной этого?
Любой из приведенных ниже строк вы можете иметь проблемы ИНТ packetID = Integer .parseInt (строки [0]); // ----------------------------------------- String packetContent = lines [ 1]; // дает ошибку в терминале. Проверьте номер строки 11 в коде. – GrabNewTech
Не могли бы вы опубликовать часть файла? – BrunoDM
Вы можете найти его на http://www.eecs.yorku.ca/course_archive/2016-17/W/2011/Mystery.txt –