La lecture des données à partir d'un fichier à un objet?
Ok une autre question à propos de mon programme que je suis en train d'écrire appelé "Envol". Dans mon testeur je suis entrain de créer un objet à partir de la classe de Vol appelé myFlight. L'objet a plusieurs champs (vol nom, le nombre de kilomètres parcourus, etc) mais ce que je suis en train de faire est de lire les données à partir d'un fichier appelé input.txt et en essayant de le mettre dans l'objet que j'ai créé. Il y a cinq lignes de renseignements sur le fichier que je suis en train de lire. Pour une raison que je ne peux pas tout à fait le droit, si quelqu'un pouvait m'aider à résoudre ce problème je vous en serais très reconnaissante.
Ici, c'est le Constructeur qui a tous les champs de ma classe de Vol:
public Flight(String name, int num, int miles, String origin, String destination)
{
Airlinename = name;
flightnumber = num;
numofmiles = miles;
Origincity = origin;
Destinationcity = destination;
}
Et la partie de mon programme où j'ai créé l'objet et essayer de lire les données à partir du fichier. J'avais créé un vide constructeur de ma classe trop parce que je ne savais pas si je devais mettre quelque chose dans l'objet, lorsque je l'ai créé.
Flight myFlight = new Flight();
File myFile = new File("input.txt");
Scanner inputFile = new Scanner(myFile);
while (inputFile.hasNext())
{
myFlight = inputFile.nextLine();
}
inputFile.close();
}
}
pouvez-vous fournir comment votre fichier txt ressemble?
OriginalL'auteur Andrew | 2012-05-07
Vous devez vous connecter pour publier un commentaire.
Juste au cas où vous utilisez des caractères spéciaux, vous devez modifier votre programme de sorte que vous pouvez les lire correctement.
D'autre part, si le fichier texte contient les éléments suivants, éventuellement, les appels suivants à
nextInt()
générer une exception d'exécution.Si c'était le cas, la lecture devrait être différent.
Comme avec n'importe quel programme, lors de l'ajout de conditions supplémentaires pour améliorer le modèle, il a besoin de plus de et plus de code.
Bonne chance.
OriginalL'auteur Paul Vargas
essayer
;
?il continue à me dire qu'il ne peut pas trouver le fichier (input.txt) ?
vérifiez que le fichier existe dans le même répertoire que le programme java.
OriginalL'auteur Lyn Headley
Vous ne pouvez pas affecter directement une ligne de chaîne à un objet, vous devez analyser la ligne en plusieurs parties, et attribuer des valeurs à des variables une par une.
OriginalL'auteur İsmet Alkan
Comment est votre saisie de texte est-il organisé? Le Scanner est
nextLine()
méthode retourne un objet de type String et certainement vous ne pouvez pas attribuer à un type Vol. Il existe différentes méthodes pour obtenir les différentes valeurs dans le Scanner commenextInt(), nextFloat()
.Fondamentalement, vous pouvez vous essayer comme ceci
etc.
C'est juste un exemple, vous devez vérifier le format que vous avez dans le input.txt fichier.
Fondamentalement, vous pouvez formater le texte d'entrée dans un format différent, comme American Airlines|56|Chicago|New York|780, la délimitation de caractère est le pipeling symbole. Depuis délimitant avec des espaces ne peut pas vous donner les bonnes valeurs, parce que la compagnie aérienne est "American Airlines", suppose que si vous délimiter avec de l'espace, vous n'obtiendrez pas le nom en entier. Maintenant, vous pouvez vérifier le Scanner de la classe de la documentation de l'API ici docs.oracle.com/javase/1.5.0/docs/api/java/util/... pour obtenir plus d'informations.
Si vous avez chaque élément dans une ligne différente, alors ce fichier contient une seule compagnie aérienne de détails ou multiples. Si plusieurs alors comment voulez-vous différencier de la fin d'un enregistrement. Si chaque ligne est un enregistrement, alors vous pouvez faire la mise en forme de la façon dont je l'ai dit avec un délimiteur de sorte que vous obtenez un tableau de Vol instances chacun représente une ligne du fichier. j'espère que ça aide
ok, donc il semble fonctionner maintenant, il compile et tout, mais maintenant quand je le lance j'ai une erreur que le fichier n'a pas été trouvé. J'ai les noms de fichier correct et qu'il est enregistré sur mon ordinateur dans un fichier bloc-notes sous le nom de input.txt des idées?
Vérifiez le chemin d'accès du fichier. Si vous avez placé le fichier dans le même emplacement où vous exécutez le programme java puis il va ramasser que vous devez donner le chemin d'accès lors de la création de
new File()
OriginalL'auteur raddykrish