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 :

Comment manipuler Classe File


Sujet :

avec Java

  1. #1
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Par défaut Comment manipuler Classe File
    bonjour à tous,

    Créer une méthode void testFile (String path) permettant de tester si le fichier existe, si c'est
    un fichier ou un répertoire.
    Si le fichier n'existe pas, alors créez ce fichier.
    le cas où il s'agit d'un répertoire énumérer l'ensemble des fichiers en donnant leur chemin absolu.
    afficher que les fichiers dont l'extension est .java.

    voici mon essai du premier point :
    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
     
    import java.io.*;
     
    public class Exercice2 {
     public static void testFile (String fichier) 
     {		   String ligne;
    		   BufferedReader In=null;
       try{
             In = new BufferedReader(new FileReader(fichier));
             while((ligne=In.readLine())!=null){
             }
             In.close();
           }
     catch(Exception e) { 
    	 System.out.println("Message Erreur "+e.getMessage());
    	 File nomFichier = new File("Fichier.txt");
    	 System.out.println("Création Réussi");
        }	
     }
       public static void main (String[] args) throws IOException{
     
    	BufferedReader in = new BufferedReader ( new InputStreamReader (System.in));
    	System.out.println("Entrer le nom du fichier ");
    	String nom_fichier = in.readLine();
    	testFile(nom_fichier);
       }
    }
    est ce que c'est juste pour continuer a programmer le reste ?

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Ben déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File nomFichier = new File("Fichier.txt");
    ça ne crée pas le fichier !!!
    cela désigne un fichier ; ce n'est pas pareil !

    Ensuite pourquoi tu t’embêtes avec BufferedReader et une gestion d'erreur.
    Avec la classe File il y a déjà les méthodes dont tu as besoin :
    • exists()
    • isFile()
    • isDirectory()
    • list()



    regarde la doc : http://docs.oracle.com/javase/7/docs...method_summary
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Citation Envoyé par alias2015_29 Voir le message
    est ce que c'est juste pour continuer a programmer le reste ?
    Pas vraiment non..

    Pourquoi ne pas tout simplement utiliser les méthodes fournies par la classe File ? (Doc ici)

    Si tu cherches un peu et tu trouveras des méthodes telles que exists() ou createNewFile() qui peuvent être utile..

    [EDIT] Grillé

  4. #4
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Par défaut
    Merci pour les liens ça m'a bien aidé à changer dans mon code
    Mais il reste *.java comment faire?
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    import java.io.*;
    import java.util.Scanner;
    public class Exercice2 {
     public static void testFile (String path) 
     {
    	 File file = new File (path);
    	 Boolean trouve;
    	 if (file.exists())
    	 {
    	     System.out.println ("Le fichier existe déjà");
    	     trouve=file.isDirectory();
    		 System.out.println (file + " est un répertoire =" + trouve);
    		 if(trouve==true){ 
    			 System.out.println(file.listFiles());
    			 System.out.println(file.getName());
    		 }	
    	 }
    	 else
    	 {
    	     try
    	     {
    	         if (file.createNewFile())
    	         {
    	             System.out.println ("Création du fichier réussie");
    	         }
    	         else
    	         {
    	             System.out.println ("Création du fichier echouée");
    	         }
    	     }
    	     catch (IOException exception)
    	     {
    	         System.out.println ("Erreur " + exception.getMessage());
    	     }
    	 }
     }
     
       public static void main (String[] args){
    	System.out.println("Entrer le nom du fichier ou du répertoire ");
    	Scanner in= new Scanner(System.in);
    	String nom_fichier = in.nextLine();
    	testFile(nom_fichier);
       }
    }

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Tu as la méthode simpliste qui consiste à utiliser la méthode list()
    et à vérifier les noms qui se finissent par ".java"

    et la méthode "élégante" qui consiste à créer un filtre :
    http://docs.oracle.com/javase/7/docs...ameFilter.html
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #6
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Par défaut
    c'est a dire au lieu de mettre listfiles() je mets list() ?
    j'ai pas compris comment utiliser interface FilenameFilter

  7. #7
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Citation Envoyé par alias2015_29 Voir le message
    j'ai pas compris comment utiliser interface FilenameFilter
    dans ce cas, utilise la 1ère solution : récupérer les noms de fichiers dans un tableau
    et tester s'il finissent par ".java"
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  8. #8
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Par défaut
    Nom : res.PNG
Affichages : 910
Taille : 8,6 Ko

    Voici résultat de l'exécution, il n’affiche rien malgré le répertoire D plein de fichier ?

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Quel est le code que tu as fait ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #10
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    System.out.println ("Le fichier existe déjà");
    	     if (file.isDirectory())
    	     {
    	     System.out.println(" contenu du repertoire ");
    	     File fichiers[] = file.listFiles();
    	     for(int i = 0; i > fichiers.length; i++)
    	     {
    	     if (fichiers[i].isDirectory())
    	     System.out.println( " ["+fichiers[i].getName()+"]");
    	     else
    	     System.out.println( " "+fichiers[i].getName());
     
    	     }
    	     }

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for(int i = 0; i > fichiers.length; i++)
    Le problème est dans la condition de fin de boucle : si i vaut 0 au départ, il n'est jamais supérieur à fichiers.length, qui est forcément supérieur ou égal à zéro, donc on entre jamais dans la boucle. C'est i < fichiers.length qu'il faut.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #12
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Par défaut
    Un grand merci à joel.drigo je suis comment j'ai pas peux voir faute de frappe comme ceci

    Maintenant si je veux afficher que les fichiers extension .java je dois mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if (fichiers[i].isDirectory())
    	     System.out.println( " ["+fichiers[i].getName()+"]");
    	     else if(pos('.java',fichier[i].getName())
    	     System.out.println( " "+fichiers[i].getName());
    ce qui en rouge une réflexion coté algorithmique je crois en java y a pas fonction pos!!

  13. #13
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Oui, pos() n'existe pas dans ta classe si tu ne l'as pas créée (et même si, ça ne fonctionnerait à cause de quote (') autour de java)...

    @Népomucène t'a donné la solution : tester si le nom se termine par .java.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichier[i].getName().endsWith(".java")
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Comment la classe classe File fabrique le chemin ?
    Par francky74 dans le forum Android
    Réponses: 5
    Dernier message: 19/01/2015, 15h52
  2. Réponses: 1
    Dernier message: 24/01/2007, 21h48
  3. Réponses: 2
    Dernier message: 27/10/2006, 15h35
  4. [Débutant][JNDI] Erreur "bad class file"
    Par giffle dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 05/01/2005, 10h23
  5. [PDFBox]Comment manipuler une LIST
    Par marcotop dans le forum Documents
    Réponses: 11
    Dernier message: 27/08/2004, 15h46

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