while(inStream.hasNextLine())
{
...
lineList.add(inStream.nextLine());
}
...
lineList est un ArrayList. Le code lit tout bien, sauf qu'il n'attrape pas la dernière ligne. Les deux dernières lignes de la fin comme ce fichier texte:Java - Comment obtenir la dernière ligne avec Scanner?
"a sentence here..."
<a blank line here. the blank line is the last line>
Je suppose que ce ne sera pas la saisir depuis hasNextLine() ne détecte pas une autre ligne après celui-ci?
Comment saisir la dernière ligne? Je pensais que la lecture jusqu'à ce que ce soit EOF et puis attraper l'exception pourrait fonctionner, mais il ne semble pas y avoir de moyen de le faire.
EDIT: PLUS D'INFO
public void readLines()
{
lineList = new ArrayList();
try
{
inStream = new Scanner(new File(fileName));
}
catch(FileNotFoundException e)
{
System.out.println("Error opening the file. Try again.");
}
if (inStream != null)
{
while(inStream.hasNextLine())
{
++originalLines;
lineList.add(inStream.nextLine());
}
inStream.close();
}
}
Il y a toute la méthode. Quelque chose ne va pas?
EDIT: MÊME PLUS D'INFO
public static void main(String[] args)
{
Scanner inStream = null;
String test = "";
inStream = new Scanner(test);
while(inStream.hasNextLine())
{
System.out.println(inStream.nextLine());
}
}
Il ne sera pas ramasser une chaîne vide, mais il ramassera un des espaces « »
J'ai ajouté la méthode entière à mon OP. Peux-tu le vérifier? – ShrimpCrackers
Méthode me semble bien. Utilisez 'wc -l' ou un éditeur hexadécimal, etc. pour voir ce que le fichier contient réellement. Faire le test "si j'appuie sur la touche fléchée droite, ça ne bouge pas" est inutile car cela dépend du comportement de l'éditeur de texte et non de ce que le fichier contient. – polygenelubricants
Merci. Ma conjecture est que ce n'est pas un délimiteur mais une chaîne vide. Si ma supposition est correcte, comment pourrais-je prendre une chaîne vide? Voir le code ajouté ci-dessus. – ShrimpCrackers