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 :

Message d'erreur lors de lecture d'un fichier


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 59
    Points : 26
    Points
    26
    Par défaut Message d'erreur lors de lecture d'un fichier
    Bonjour,

    Je viens vers vous car j'ai un problème sur mon programme Java que je n'arrive pas à résoudre. Mon programme Java a pour but de lire un fichier Excel que l'on choisi via l'utilitaire FileChooser.

    J'arrive très bien à afficher un fichier Excel en indiquant son chemin à l'écrit, cependant, je voudrais lire n'importe quel fichiers Excel choisi.

    J'ai donc fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    fc.showOpenDialog(this);
                    File file1 = fc.getCurrentDirectory();
                    String str = file1.toString();
                    FileInputStream inputStream = new FileInputStream(new File(str));
                    XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
                    XSSFSheet sheet = workbook.getSheetAt(0);
                    Iterator<Row> rowIterator = sheet.iterator();
     
                    Row row = rowIterator.next();
     
                    int nomComplet = (int) row.getCell(1).getNumericCellValue();
                    System.out.println(nomComplet);
    Cependant, quand je lance mon programme, je clique sur le bouton pour choisir mon fichier, le file chooser s'ouvre, je choisi mon fichier et voici l'erreur qui arrive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.io.FileNotFoundException: C:\Users\stagibe\Documents (Accès refusé)
    	at java.io.FileInputStream.open0(Native Method)
    	at java.io.FileInputStream.open(FileInputStream.java:195)
    	at java.io.FileInputStream.<init>(FileInputStream.java:138)
    De base, je pensais que le document étais dans un repertoire privé et sans lecture/écriture. Je l'ai donc changé de répertoire, dans mes documents pour être sur d'avoir la permission d'écrire, mais rien ne change.

    Je ne sais donc pas d'où peut venir mon erreur.

    Merci d'avance à ceux qui sauront m'aider.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    le message d'erreur dit que le programme n'arrive pas à ouvrir ce fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Users\stagibe\Documents
    As-tu vérifié si ce fichier existe ?

    Et parlons un peu de getCurrentDirectory()... Peux-tu nous dire ce que "directory" signifie en français ?

    Je suggère de te pencher sur getSelectedFile​() à la place.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut


    Autre chose que j'ai vu dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File file1 = fc.getCurrentDirectory();
    String str = file1.toString();
    FileInputStream inputStream = new FileInputStream(new File(str));
    Tu fais les choses en double ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File file1 = fc.getCurrentDirectory(); //récupère le fichier
    String str = file1.toString(); //récupère le chemin du fichier
    new File(str); //crée un fichier à partir de ce chemin
    Tu as déjà un objet File, pourquoi est-ce que tu en crées un nouveau ?
    Tu n'utilise jamais ta variable str, est-elle vraiment utile ?
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 59
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par thelvin Voir le message
    As-tu vérifié si ce fichier existe ?
    Oui il existe car je le choisis via le file chooser

    Citation Envoyé par thelvin Voir le message
    Je suggère de te pencher sur getSelectedFile​() à la place.
    C'est ceci, merci !!

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 59
    Points : 26
    Points
    26
    Par défaut


    Citation Envoyé par Drowan Voir le message
    Autre chose que j'ai vu dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File file1 = fc.getCurrentDirectory();
    String str = file1.toString();
    FileInputStream inputStream = new FileInputStream(new File(str));
    Tu fais les choses en double ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File file1 = fc.getCurrentDirectory(); //récupère le fichier
    String str = file1.toString(); //récupère le chemin du fichier
    new File(str); //crée un fichier à partir de ce chemin
    Tu as déjà un objet File, pourquoi est-ce que tu en crées un nouveau ?
    Tu n'utilise jamais ta variable str, est-elle vraiment utile ?
    Etant donné que j'ai changer mon programme en remplacant fc.getCurrentDirectory par fc.getSelectedFile ceci fonctionne non ?
    En fait, j'aurai aime faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    File file1 = fc.getSelectedFile();
    FileInputStream inputStream = new FileInputStream(new File(file1));
    Cependant, il me signale une erreur en disant qu'il faut que je mettes un string à la place de file1. J'ai donc créer un String qui possède le chemin de mon objet File

    Le but de ce programme est de lire un fichier

  6. #6
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    Citation Envoyé par thelvin Voir le message
    As-tu vérifié si ce fichier existe ?
    Et parlons un peu de getCurrentDirectory()... Peux-tu nous dire ce que "directory" signifie en français ?
    Ce que voulais dire Thelvin est : est-ce bien un fichier ce que te retourne getCurrentDirectory() ? Et non pas un autre objet (même si tu le stock dans une instance de File) ?
    Il serait intéressant pour toi de pouvoir répondre à ça.

    ----

    Pourquoi ne pas utiliser directement file1 ? au lieu de recrée un objet File ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileInputStream inputStream = new FileInputStream(file1);
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 59
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Drowan Voir le message
    est-ce bien un fichier ce que te retourne getCurrentDirectory() ? Et non pas un autre objet (même si tu le stock dans une instance de File) ?
    En effet, cela me retourne le chemin du répertoire où se trouve le fichier et non le chemin du fichier en lui-même.

Discussions similaires

  1. [OL-2013] Message d'erreur lors d'ajout d'un fichier PST qui vient d'Outllok 2007.
    Par dimitri13 dans le forum Outlook
    Réponses: 1
    Dernier message: 01/12/2015, 16h55
  2. Message d'erreur lors du parsing d'un fichier JSON
    Par Rony Rauzduel dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 28/07/2014, 11h28
  3. erreur lors du lecture d'un fichier excel
    Par pato1989 dans le forum Général Java
    Réponses: 3
    Dernier message: 31/03/2011, 12h35
  4. message d'erreur lors de la création de la base
    Par ber_jp dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/05/2004, 12h15
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

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