Je suis un étudiant et j'ai un projet en Java et j'essaye de lire des fichiers et de les mettre dans un constructeur. Le fichier que je suis en train de lire est sous cette forme:Le code pour lire à partir d'un fichier et le mettre dans un constructeur ne fonctionnera pas
2 Sciense [mr ali hassan 14/4/1993 ] Ali Hhassan 13234 12/3/1998 123 1234567891234 1234567891 engineer
2 Sciense [mr ali hassan 14/4/1993 ] Ali Hhassan 13234 12/3/1998 123 1234567891234 1234567891 null
.
.
.
etc
Je suis en train de lire les jetons du jeton de ligne par jeton et mettre chacun d'eux dans mon constructeur. Voici mon code:
Je sais que j'ai beaucoup de flux dans l'écriture de mes cours, parce que j'ai commencé à apprendre la programmation Java il y a environ 4 mois, mais ce que j'essaie de faire est de lire la première ligne de le fichier et séparer chaque jeton dans celui-ci j'ai essayé d'améliorer mon code pour verrouiller comme ceci, Fichier F = new File ("Book.txt");
Scanner fileInput = new Scanner (F);
while (fileInput.hasNextLine()){
String Line = fileInput.nextLine();
Scanner readLline = new Scanner(Line);
while(readLline.hasNext()){
//reads line by line
readBook.setNumOfAuthor(readLline.nextInt());
readBook.SetAplicationTitle(fileInput.next(Line));
String GetRedOf = fileInput.next();
ba.setStatus(fileInput.next());
ba.setFirstName(fileInput.next()) ;
ba.setLastName(fileInput.next());
Adate.setDay(fileInput.nextInt());
String GetRedOf3 = fileInput.next();
Adate.setMonth(fileInput.nextInt());
String GetRedOf4 = fileInput.next();
Adate.setYear(fileInput.nextInt()) ;
// String comma = fileInput.next();
String GetRedOf2= fileInput.next();
bb.setName(fileInput.next());
bb.setAdress(fileInput.next());
bb.setphneNumber(fileInput.next());
publicationDate.setDay(fileInput.nextInt()) ;
String getred = fileInput.next();
publicationDate.setMonth(fileInput.nextInt());
String getred1 = fileInput.next();
publicationDate.setYear(fileInput.nextInt()) ;
readBook.SetNumOfPUblication(fileInput.nextInt());
readBook.setIsbn13(fileInput.next()) ;
readBook.setIsbn13(fileInput.next());
readBook.SetCatagory(fileInput.next());
}
Pouvez-vous m'aider à résoudre son problème s'il vous plaît!
c'est l'erreur que je vais avoir Exception dans le thread "principal" java.util.NoSuchElementException à java.util.Scanner.throwFor (Scanner.java:907)
à java.util.Scanner .next (Scanner.java:1530)
at java.util.Scanner.next(Scanner.java:1463)
at TestPublications.ReadBook(TestPublications.java:260)
at TestPublications.main(TestPublications.java:232)
Java Résultat: 1 ligne 260 est
readBook.SetAplicationTitle (fileInput.next (ligne));
Vous recommande fortement 1. lire une ligne du fichier à une chaîne et 2. décomposer la chaîne plutôt que d'essayer de supposer intelligemment que .Next va vous obtenir le Les données tu veux. Il vous permettra également de valider correctement toutes vos entrées –
Quelle ligne est TestPublications.java:258? –
Cela devrait être facile à déboguer. Définissez simplement un point d'arrêt sur TestPublications.java:258. L'exception signifie que vous essayez de lire quelque chose sous la forme d'un entier qui n'est pas un nombre entier. – BetaRide