IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Besoin d'aide pour ma première classe


Sujet :

avec Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut Besoin d'aide pour ma première classe
    Bonjour je viens de commencé java .

    Je voudrais créer une classe avec une première méthode : SmbUtils pour lire un fichier sur le réseau .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
    import java.io.File;
    import java.util.Scanner;
     
     
    public class SmbUtils {
     
    	public String lire(String filePath) {
    		Scanner scanner = new Scanner(new File(filePath));
     
    		// On boucle sur chaque champ detecté
    		while (scanner.hasNextLine()) 
    		{
    		    String line = scanner.nextLine();   
    			//faites ici votre traitement
    		}
    	    return System.out.println(line);
    	    scanner.close();
    	  }
    }
    Le problème c'est qu'il me génère une erreur sur la ligne : return System.out.println(line); (sur la variable line) .

    Description Resource Path Location Type
    line cannot be resolved to a variable SmbUtils.java /Fichier/src line 16 Java Problem


    J'ai surement oublié quelle que chose

    Merci de votre aide .

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Points : 276
    Points
    276
    Par défaut
    bonjour,

    ta variable line est déclarée dans la boucle et tu essayes de l'utiliser en dehors => impossible

    System.out.println retourne void => or tu déclare un type de retour String, c'est incompatible.

    tu as du code mort, après ton instruction return.

    l'instanciation de scanner est susceptible de provoquer des exception.
    MigouW

    La seule bataille perdue d'avance est celle que l'on refuse de livrer.


    Pensez au tag
    Ma réponse vous a été utile, votez plus 1 sur le message.
    Ma réponse est hors sujet, votez moins 1 sur le message.

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,


    1- La méthode println retourne rien (void) or que la fonction Lire doit retourner un String.
    2- "String line" est déclaré dans la boucle while donc invisible à l'extérieur.

    A+.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Ok super

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.Scanner;
     
     
    public class SmbUtils {
     
    	public String line ;
    	public String lire(String filePath) throws FileNotFoundException {
    		Scanner scanner = new Scanner(new File(filePath));
     
    		// On boucle sur chaque champ detecté
    		while (scanner.hasNextLine()) 
    		{
    			if (line == null)
    				line = scanner.nextLine();
    			else{
     
    				line = line + "\n" + scanner.nextLine(); ;
    			}
     
    			//faites ici votre traitement
    		}
     
    	    return (line);
    	  }
    }
    Merci

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2011
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 51
    Points : 71
    Points
    71
    Par défaut
    -Déclare ton String avant ton while
    -Ton return est l'élément qui fait que la méthode s'arrête donc un close après ne sert à rien

    -Tu dois aussi savoir que ne retournera juste que la dernière ligne de ton fichier.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Points : 276
    Points
    276
    Par défaut
    Re bonjour,

    Petite remarque en passant, je ne trouve pas utile de déclarer line en tant qu'attribut de la classe. le déclarer dans la méthode mais en dehors de la boucle serait plus approprié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
        public String lire(String filePath) throws FileNotFoundException {
    		Scanner scanner = new Scanner(new File(filePath));
                    String line;
    		// On boucle sur chaque champ detecté
    		while (scanner.hasNextLine()) 
    		{
    			if (line == null)
    				line = scanner.nextLine();
    			else{
     
    				line = line + "\n" + scanner.nextLine(); ;
    			}
     
    			//faites ici votre traitement
    		}
     
    	    return (line);
    	  }
    MigouW

    La seule bataille perdue d'avance est celle que l'on refuse de livrer.


    Pensez au tag
    Ma réponse vous a été utile, votez plus 1 sur le message.
    Ma réponse est hors sujet, votez moins 1 sur le message.

  7. #7
    Membre habitué
    Homme Profil pro
    SAQ
    Inscrit en
    Novembre 2005
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : SAQ
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2005
    Messages : 167
    Points : 194
    Points
    194
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    line = line + "\n" + scanner.nextLine(); ;
    L'utilisation de l'opérateur + dans une chaîne esr déconseillée pour la concaténation :Voir ceci
    (En .Net mais l'argument est valide tout de même)
    Si derrière tout homme il y a une femme, devant ce même homme il y a l'ordinateur que cette femme a bousillé
    ---------

    Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing. (Dick Brandon)

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Utilise la propriété line.separator pour le retour à la ligne qui sera indépendant du l'OS utilisé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.getProperty("line.separator")
    A+.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour trouver une classe à créer.
    Par tonykart13 dans le forum Général Python
    Réponses: 13
    Dernier message: 09/02/2012, 21h18
  2. Besoin d'aide pour ma première BDD
    Par rambc dans le forum Général Python
    Réponses: 8
    Dernier message: 02/01/2012, 10h39
  3. Besoin d'aide pour réaliser une classe avec du css
    Par Winjet dans le forum Mise en page CSS
    Réponses: 29
    Dernier message: 24/04/2009, 11h01
  4. Besoin d'aide pour première utilisation de diff
    Par vallica dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 07/06/2008, 16h22
  5. Réponses: 13
    Dernier message: 05/05/2007, 00h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo