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

Langage Java Discussion :

trouver une ressource


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut trouver une ressource
    bonjour,
    j'ai un package dans lequel j'ai placé des fichiers .bin
    moi je travail dans le package org.ces.cagt.blabla et les fichiers .bin se trouvent dans le package org.ces.cagt.binaryfiles

    quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BufferedReader in = new BufferedReader(new FileReader("org/ces/cagt/binaryfiles/monfichier.bin"));
    ça marche pas : fichier introuvable!!
    le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     getClass.getResources("org/ces/cagt/binaryfiles/monfichier.bin")
    ne marche pas non plus puisque ce dernier te revoie une URL et le constructeur de FileReader n'accepte pas d'URL

    qq a une idée ??

    PS: je suis sous netbeans

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Essaye donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getClass().getClassLoader().getRessourceAsStream("ta ressource");
    C'est comme ça que je charge mes fichiers ressources et ça marche très bien! Tu récupéreras un InputStream, par contre, et non pas un FileReader: j'espère que ça ne te gènera pas


    A mon avis, tu auras du mal à trouver une méthode JAVA qui te permettra d'ouvrir une ressource située dans un package avec les classes File ou FileReader.

    Si tu compiles ton projet en jar, tes ressources seront encapsulées dans le jar, et File ou FileReader ne fonctionneront naturellement plus (ces classes ne lisentpas l'intérieur d'un jar)

    Il est donc normal dene pas pouvoir ouvrir une ressource par un FileReader à mon avis. Par contre, getRessourceAsStream() ouvre ta ressource sans problème à l'intérieur d'un jar.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut
    j'ai absolument besoin de la méthode readLigne !!!! elle est indispensable !

    as-tu une idée ?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Par défaut
    Salut,

    Essaye plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    getClass.getResources ("/org/ces/cagt/binaryfiles/monfichier.bin");
    Il faut te placer à la racine de l'archive jar.

    a+

  5. #5
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut
    Citation Envoyé par Kh4iN3
    Salut,

    Essaye plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    getClass.getResources ("/org/ces/cagt/binaryfiles/monfichier.bin");
    Il faut te placer à la racine de l'archive jar.
    elle ne marche pas:
    1) parceque elle retourne une URL;
    2) parceque même si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    getClass.getResources ("/org/ces/cagt/binaryfiles/monfichier.bin").toString();
    elle va rechercher depuis ce "c:\" et non a partir du jar !!!

    une autre idée ??

  6. #6
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut
    j'ai trouvé cette solution, qui dit mieux !!!! ???


    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
     
            BufferedReader in = null;
            BufferedWriter out = null;
            String s = null;
            try {
                out = new BufferedWriter (new FileWriter("tmp.tmp"));
                InputStream is = getClass().getResourceAsStream("/org/ces/cagt/binaryfiles/monfichier.bin");
                int i;
                while ((i = is.read())!=-1)
                    out.write(i);
                out.close();
                is.close();
                in = new BufferedReader(new FileReader("tmp.tmp"));
                /**
                   traitement sur le fichier binaire
                */
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            File f = new File("tmp.tmp");
            f.delete();
    ça consiste tout simplement à extraire du jar le fichier binaire, le stocker dans un fichier tmp.tmp et en suite supprimer le fichier tmp

    qu'en dites-vous ?

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

Discussions similaires

  1. [ServletContext]Charger une ressource dans la servletContext
    Par lalou33 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 25/06/2004, 14h37
  2. [CR] trouver une bonne doc
    Par ina dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 17/06/2004, 17h43
  3. Accès à une ressource ?
    Par Neilos dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/03/2004, 16h29
  4. Réponses: 3
    Dernier message: 21/01/2004, 08h47
  5. Inclure une dll dans une ressource
    Par bgcode dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/08/2003, 11h12

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