2015-04-25 1 views
0

new to java et je suis tring pour créer un tableau de 5 objets client et objet animal de compagnie en fonction de la quantité dans le fichier spécifié. Cependant, il lit bien le premier client et l'information de familier mais quand j'arrive au prochain client il me donne java.util.NoSuchElementException: null (dans java.util.StringTokenizer).java.util.NoSuchElementException lors de la boucle sur le deuxième client

import java.io.*; 
import java.util.*; 
/** 
* Write a description of class VetClientDriver here. 
* 
* @author (Anastasia) 
* @version (4/19/15 --THPT4) 
*/ 
public class VetClientDriver 
{ 
    /** 
    * Constructor for objects of class VetClientDriver 
    */ 
    public static void main(String[] args) throws IOException 
    { 
     String filename = ("C:\\Users\\Anastasia\\Desktop\\clientdata.txt") ; 
     File file = new File(filename); 
     Scanner fs = new Scanner(file); 
     StringTokenizer stok = new StringTokenizer(fs.nextLine(), ",|//"); 

     VetClient []clients; 
     VetPets []pets; 
     String last, first, addr, id, num, balance; 
     String name,type,rabies,visit,weight; 
     String numOfPets; 
     //fs = new Scanner(file); 
     //stok = new StringTokenizer(fs.nextLine(), ",|//"); 
     clients = new VetClient[5]; 
      for(int i=0; i<clients.length; i++) 
        { 

        last = stok.nextToken(); 
        first = stok.nextToken(); 
        addr = stok.nextToken(); 
        id = stok.nextToken(); 
        num = stok.nextToken(); 
        balance = stok.nextToken(); 
        numOfPets = stok.nextToken(); 

        clients[i] = new VetClient(last,first,addr,id,num,balance,numOfPets); 
        System.out.println(clients[i].clientInfo()); 
        pets = new VetPets[Integer.parseInt(numOfPets)]; 

        for(int k=0; k<pets.length; k++) 
         { 
         stok = new StringTokenizer(fs.nextLine(), ",|/"); 
         name = stok.nextToken(); 
         type = stok.nextToken(); 
         weight = stok.nextToken(); 
         rabies = stok.nextToken(); 
         visit = stok.nextToken(); 
         pets[k] = new VetPets(name,type,weight,rabies,visit); 
         System.out.println(pets[k].petInfo() + "\n"); 

         } 


        } 
        fs.close(); 
        } 

       }  
+2

Ajouter pleine stacktrace et marquer la ligne, où l'exception est levée. – Jens

+1

Pouvez-vous poster votre fichier clientdata.txt ou un exemple similaire? – pathfinderelite

Répondre

2

add ligne suivante dans la boucle for

StringTokenizer stok = new StringTokenizer(fs.nextLine(), ",|//"); 

Remarque: d'abord supprimer la ligne ci-dessus de la position actuelle

+0

Merci son fixe maintenant – Anastasia

+1

Si cela vous a aidé, acceptez la réponse en cliquant sur le symbole de la tique – swapnil7