Charger des propriétés d'un fichier .txt

Fermé
Lexo - Modifié par Lexo le 29/11/2012 à 22:43
ParadiseLost Messages postés 4 Date d'inscription vendredi 30 novembre 2012 Statut Membre Dernière intervention 30 novembre 2012 - 30 nov. 2012 à 13:05
Bonjour à tous,

J'ai à charger des données dans un fichier texte. Voilà exactement ce que je veux faire:

Dans ma classe Planete, j'ai les attributs: -nom, -masse, -rayon.

Dans mon fichier texte j'ai:
Terre
5973600000000 (exemple)
6000000

Donc, ce que ma méthode doit faire, c'est récupérer l'info et la stocker dans l'attribut qui lui est associé, et ce, ligne par ligne, pour qu'il en résulte:

public Planete(){

nom = "Terre";
masse = 5973600000000;
rayon = 6000000;
}


Évidemment, l'utilisation des classes input/output seront utilisées, mais je ne sais pas comment les utiliser pour avoir exactement comme je le souhaite.

Merci de votre aide!


A voir également:

3 réponses

ParadiseLost Messages postés 4 Date d'inscription vendredi 30 novembre 2012 Statut Membre Dernière intervention 30 novembre 2012
Modifié par ParadiseLost le 30/11/2012 à 00:51
Salut,

String fichier = "nomDeTonFichier.txt"; 
String tmp[] = new String[3]; 
int i = 0; 

try{ 
 InputStreamReader fis = new InputStreamReader(new 
             FileInputStream(fichier)); 
  
 x = fis.read(b, 0, 1); 
 while(x != -1 && i < 3) 
 { 
  if(b[0] == '\n') i++; 
  else tmp[i] += x; 
                x = fis.read(b, 0, 1); 
 } 
} catch (IOException e) {} 

nom = tmp[0]; 
masse = Integer.parseInt(tmp[1]); 
rayon = Integer.parseInt(tmp[2]);
0
Ça ne marche :/

J'ai initialisé b: char [] b = new char[10];
et x: int x;

Sauf que pour quoi x est un entier, si on est supposé y stocker du texte?
Quand j'ai runné avec ça, un message d'erreur m'est apparu et dedans il y avait:

blabla....null11111 (même nombre de 1 que dans le mot "Terre", qui est dans mon fichier lu). Dans la javadoc, la méthode utilisée retourne 1 s'il y a un caractère de lu, et non sa valeur en char.
0
ParadiseLost Messages postés 4 Date d'inscription vendredi 30 novembre 2012 Statut Membre Dernière intervention 30 novembre 2012
30 nov. 2012 à 13:05
Pardon.

x = fis.read(b, 0, 1);

x contient 1 s'il y a quelque chose à lire et 0 sinon.
le tableau b contient la valeur.

donc

else tmp[i] += x;

C'est pas x mais b[0].
0