2015-11-26 1 views
1

Le programme que j'écris est en Java. Je tente de faire lire mon programme le fichier "name.txt" et stocke les valeurs du fichier texte dans un tableau. Jusqu'à présent, j'utilise un fichier texte qui sera lu dans mon programme principal, une classe de service appelée People.java qui servira de modèle pour mon programme, et mon programme principal appelé Names.java qui lira le fichier texte et stocker ses valeurs dans un tableau.Erreur lors de la lecture des fichiers pour stocker leurs données dans un tableau

nom.txt:

John!Doe 
Jane!Doe 
Mike!Smith 
John!Smith 
George!Smith 

People.java:

public class People 
{ 
    String firstname = " "; 
    String lastname = " "; 

    public People() 
    { 
     firstname = "First Name"; 
     lastname = "Last Name"; 
    } 

    public People(String firnam, String lasnam) 
    { 
     firstname = firnam; 
     lastname = lasnam; 
    } 

    public String toString() 
    { 
     String str = firstname+" "+lastname; 

     return str; 
    } 

} 

Names.java:

import java.io.File; 
import java.io.IOException; 
import java.util.Scanner; 
import java.util.StringTokenizer; 
public class Names 
{ 
    public static void main(String[]args) 
    { 
     String a = " "; 
     String b = "empty"; 
     String c = "empty"; 
     int counter = 0; 


     People[]peoplearray=new People[5]; 

     try 
     { 
      File names = new File("name.txt"); 
      Scanner read = new Scanner(names); 

      while(read.hasNext()) 
      { 
       a = read.next(); 
       StringTokenizer token = new StringTokenizer("!", a); 

       while(token.hasMoreTokens()) 
       { 
       b = token.nextToken(); 
       c = token.nextToken(); 
       People p = new People(b,c); 
       peoplearray[counter]=p; 
       ++counter; 
       } 
      } 
     } 

     catch(IOException ioe1) 
     { 
      System.out.println("There was a problem reading the file."); 
     } 

     System.out.println(peoplearray[0]); 

    } 
} 

Comme je le montre dans mon programme, j'ai essayé d'imprimer la valeur de peoplearray [0], mais quand je fais cela, ma sortie se lit comme suit: "null".

Si le programme travaillaient corrrectly, la valeur de peoplearray [0] devrait être, « John Doe » comme ce sont les valeurs appropriées dans « names.txt »

est la valeur de peoplearray [0] supposé être nul? Sinon, que puis-je faire pour résoudre ce problème? Merci!

Répondre

1

L'ordre de vos arguments est faux:

StringTokenizer token = new StringTokenizer("!", a); 

Selon API constructor

StringTokenizer publique (String str, String delim)

utilisation

StringTokenizer token = new StringTokenizer(a,"!"); 
+0

Merci beaucoup! –