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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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
    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 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    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 chevronné 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 : 30
    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
    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 ?

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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
    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

  5. #5
    Membre chevronné 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 : 30
    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
    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);

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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
    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.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    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
    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 !!

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