2015-04-17 1 views
1

Je lis dans le contenu de mon File même:Valeur Sentinelle à la fin d'un fichier?

List<String> list = new ArrayList(); 
Scanner scanner = new Scanner(new FileInputStream(file)); 
while(scanner.hasNextLine()) 
{ 
    list.add(scanner.nextLine()); 
} 

Au EOF Je veux envoyer le String "@@@" à agir en tant que sentinelle valeur de savoir que sa fin. Cependant, je n'ai pas "@@@" dans le File en cours de lecture. Des suggestions sur la façon dont je pourrais aborder cela?

+0

Si le stockage des lignes dans une liste, pourquoi ne veulent la valeur sentinelle? Le dernier élément de la liste est l'EOF. – Shar1er80

Répondre

0

Ajoutez simplement la ligne list.add("@@@"); après votre boucle while.

Vous saurez que vous avez lu le fichier entier d'ici là, ajoutez simplement la chaîne de caractères constante. Vous voudrez peut-être envisager de séparer la chaîne pour une meilleure lisibilité avec quelque chose comme:

public static final String SENTINEL = "@@@"; 
1
List<String> list = new ArrayList(); 
Scanner scanner = new Scanner(new FileInputStream(file)); 
while(scanner.hasNextLine()) 
{ 
    list.add(scanner.nextLine()); 
} 
list.add("@@@");