2015-02-23 2 views
0

Эй, ребята, в основном у меня есть файл «classroom.txt», который имеет имя профессора вместе с объемом комнаты и фактическим количеством студентов в первой строке. После первой строки указано имя ученика, мужчины или женщины, идентификационный номер и возраст. IEКак сохранить текстовый файл в массивы

John Doe, 50, 25 
David Clark, M, 100, 17 
Betty Johnson, F, 101, 17 
Mark Jones, M, 102, 18 

в основном я хочу, чтобы хранить John Doe, 50, 25 в списке массива учителей и остальное в списке массива студентов.

try{ read = new Scanner(new File("classrom.txt")); 
while(read.hasNextLine()) 
{ 
//this is where I'm stuck to only read the first line into teacher arraylist 
//and the rest into students 
} 
catch(Exception e) 
System.out.println("File Not Found"!); 
+2

Вам нужно использовать String.split() для получения значений между разделителями запятой. Он вернет массив каждой строки, содержащий значения. –

ответ

1

Поскольку только первая строка содержит данные учителя, прочитайте файл за пределами цикла. В цикле, вы можете продолжить чтение & добавление в ArrayList студента:

if(read.hasNextLine()){ 
    String teacherData = read.nextLine(); 
    teacherArrList.add(teacherData); 
} 
while(read.hasNextLine()){ 
    String studentData = read.nextLine(); 
    studentArrList.add(studentData); 
} 
0

Попробуйте использовать счетчик. если первая строка текстового файла ВСЕГДА содержит информацию о Учителях, то просто используйте счетчик для первой строки.

try{ read = new Scanner(new File("classrom.txt")); 
while(read.hasNextLine()) 
//this counter will count your lines 
int counter = 1; 
{ 
    String line = read.readLine() 

    //if counter is 1, then your String line will contain the teacher's info 
    if(counter == 1){ 
     // do something with the teacher's info. Parse, perhaps 

    }else{ 
     // do something with the student's info. Parse, maybe 
    } 
counter++; 

} 
catch(Exception e) 
System.out.println("File Not Found"!); 
0

Кажется, вы говорите, что не знаете, как сказать, что первая строка предназначена для учителей. Способ сделать это - иметь int, который представляет, сколько строк вы прочитали до сих пор.

int i = 0; 
try{ read = new Scanner(new File("classrom.txt")); 
while(read.hasNextLine()) 
{ 
    if (i == 0) { 
     // do teacher stuff 
    } else { 
     // do student stuff 
    } 
    i++; //increment i to represent how many lines have been read 
} 
catch(Exception e) 
System.out.println("File Not Found"!); 
Смежные вопросы