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

Java Discussion :

Problème avec FileInputStream : FileNotFoundException


Sujet :

Java

  1. #1
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut Problème avec FileInputStream : FileNotFoundException
    Salut à tous,

    J'ai un problème à l'instanciation de mon FileInputStream, celui-ci me lève une FileNotFoundException. Mon fichier se trouve dans le même dossier que ma classe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FileInputStream in = new FileInputStream("jcerbere.properties");
    J'ai essayé plusieurs orthographes mais en vain.
    ./jcerbere.properties
    .//jcerbere.properties
    .\jcerbere.properties
    .\\jcerbere.properties
    C'est pourtant pas compliqué... Je ne vois pas le problème.

  2. #2
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    quelle est l'arborescence de ton projet parce qu'il manque peut etre un nom de repertoire .... j'ai eu le meme probleme.

    [Edit]
    ton fichier class fait il parti d'un package ? a partir de quel repertorie lance tu le projet ?
    en fait, le "." designe le repertoire du fichier jar que tu execute (si c'est un fichier jar) ou bien du fichier class lancé, a condition que la console soit deja dans le repertorie du fichier class. sinon il faut redonner toute l'arborescence.

    [Edit2] Si ton fichier est dans le repertoire de la classe, tu peux aussi recuperer le chemin d'acces a la classe, en extraire le nom de la classe et ensuite rajouter le nom de ton fichier pour sur de generer dynamiquement le bon chemin.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Points : 75
    Points
    75
    Par défaut
    Hello,

    Si c'est une réference vers un inputstream, tu peux toujours utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    in = getClass().getResourceAsStream("/pkg/subpkg/jcerbere.properties");
    Sinon je pense que pour un FileInputStream, il est préferable d'utiliser un chemin complet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    in = new FileInputStream(System.getProperty("user.dir") + File.separator + "pkg" + File.separator + "subpkg" + File.separator + "jcerbere.properties");
    Bonne chance !

  4. #4
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    J'exécute un .class pas un .jar

    Voilà mon arborescence:
    cerbere.ihm
    |-main.java
    |-main.class
    cerbere.ressources.pojo
    |-PropertiesCerbere.java
    |-PropertiesCerbere.class
    |-cerbere.properties
    La classe dans laquelle j'ai mon FileInputStream est la classe PropertiesCerbere. Normalement on devrait pouvoir y accéder directement.

    Au cas où le chemin soit relatif à la class main (qui est ma classe main), j'ai aussi essayé ce chemin :
    ..\\cerbere\\ressources\\pojo\\jcerbere.properties
    Mais c'est le même topo.

    [Edit] J'ai essayé le chemin complet /pkg/subpkg/cerbere.properties mais ça n'a pas l'air de fonctionner non plus :
    /cerbere/ressources/pojo/jcerbere.properties
    [Edit 2] Yes, super ça fonctionne. J'ai utilisé la solution proposée par yannick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String chemin = System.getProperty("user.dir") + File.separator + "src" + File.separator + "cerbere" + File.separator + "ressources" + File.separator + "pojo" + File.separator + "jcerbere.properties";
                System.out.println(chemin);
                FileInputStream in = new FileInputStream(chemin);
    Merci!

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Points : 75
    Points
    75
    Par défaut
    Si tu n'es pas dans un jar et que ta commande java est démarrée à partir du répertoire qui contient le répertoire cerbere alors ceci devrait fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new FileInputStream(".\\cerbere\\ressources\\pojo\\jcerbere.properties");
    [EDIT]Je me répète

  6. #6
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    En fait mon problème c'était que j'avais pas considéré le package parent de cerbere comme faisant partie de mon arborescence parce qu'il a été généré par NetBeans, d'où la couille dans le pâté.

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

Discussions similaires

  1. problème avec FileInputStream
    Par soumti84 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 28/03/2009, 21h32
  2. Problème avec Spring : java.io.FileNotFoundException
    Par lionel84 dans le forum Spring
    Réponses: 6
    Dernier message: 29/08/2008, 09h59
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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