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

Entrée/Sortie Java Discussion :

Problème chemin de fichier


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur de projets
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur de projets
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Par défaut Problème chemin de fichier
    Bonjour à tous,


    Tout est dans le titre, mais je vais vous apporter quelques explications.

    Je travaille sous NetBeans et voici mon architecture au niveau des dossiers/fichiers:

    monDossierProjet:
    |_build
    |_dist
    |_proj.jar
    |_lib
    |_conf
    |_config.txt
    |_src
    |_test

    Lors du développement de mon applet, je lis les configurations nécessaire à l'initialisation dans "conf/config.txt".

    Par contre, lorsque je charge mon .Jar dans mon serveur, je n'arrive plus a accéder au fichier.

    voici l'architecture sur le serveur:
    applet:
    \_conf
    \_config.txt
    \_dist
    \_conf
    \_config.txt
    \_lib
    \_monProjet.jar

    donc voici ce que j'ai mis au départ pour mon accès au fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    File fichier = new File("conf/config.txt");
          byte[] result = new byte[(int) fichier.length()];
          FileInputStream in = new FileInputStream(filename);
    L'archi du .JAR est:
    monProjet.jar
    \_META_INF
    \_monProjet
    \_mes fichiers.class

    Donc lorsque j'ai mis mon applet dans le serveur, j'ai modifié à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File fichier = new File("../conf/config.txt");//pour le conf au meme niveau que le jar
          byte[] result = new byte[(int) fichier.length()];
          FileInputStream in = new FileInputStream(filename);

    puis pour atteindre l'autre "conf/config.txt" qui est au niveau supérieur j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File fichier = new File("../../conf/config.txt");//pour le conf au meme niveau que le jar
          byte[] result = new byte[(int) fichier.length()];
          FileInputStream in = new FileInputStream(filename);
    Donc voila le souci.

    J'ai bien lu tous ce qu'il existait dans le forum, mais je n'arrive pas à corriger le problème.

    Si vous avez une autre solution, ou une idée pour me diriger vers la bonne, je suis preneur.

    J'ai pensé à une chose, est ce qu'on peut créer un lien URL pour instancier un nouveau "FILE"?

    Car dans ce cas, ca pourrait corriger et rendre portable mon souci.


    Cordialement,

    MustOne

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu ne peux pas utiliser File pour accéder à ce qui se trouve sur le serveur. Pour y accéder, utilise des URL. LE "codebase" ou le "documentBase" de l'applet te servira de point de départ pour localiser ce fichier.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur de projets
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur de projets
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Par défaut
    bonjour,

    Je m'en doutais bien que le problème venait de la.

    Par contre, utiliser le "codeBase" ou "documentBase" permet donc de créer les URL avec comme point de repere le document qui appelle la lecture.

    En supposant que l'URL ne change jamais -car j'ai l'adresse dynDNS du serveur- est ce que je peux utiliser ca?

    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
    public class URLReader {
        public static void main(String[] args) throws Exception {
    	URL yahoo = new URL("http://www.yahoo.com/");
    	BufferedReader in = new BufferedReader(
    				new InputStreamReader(
    				yahoo.openStream()));
     
    	String inputLine;
     
    	while ((inputLine = in.readLine()) != null)
    	    System.out.println(inputLine);
     
    	in.close();
        }
    }

    Je ne met pas en doute ta méthode, mais c'est juste parce que j'avais continué mes recherches et donc j'aimerai avoir un avis supplémentaire

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le bufferedreader n'est pas garanti de fonctionner à tous les coup. Ca dépend de l'encodage utilisé pour la page. Si la page HTML a un encodage différent de celui de ta plateforme, ca peux déclencher des exceptions dues à l'impossibiltié de décoder. Préfère le xconstructeur de BufferedReader prenant en paramètre un charset, ainsi si tu a le controle sur le codage coté client. (Reste plus qu'à ce qu'il soit le même que la page coté serveur)

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur de projets
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur de projets
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Par défaut
    ok c'est bien à savoir.

    Cependant, je ne me suis pas bien exprimé.

    supposes que dans l'exemple que j'ai "copier/coller" je ne mette pas une URL de yahoo, mais bien l'URL du fichier conf/config.txt que je souhaite ouvrir, du genre:

    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
    public class URLReader {
        public static void main(String[] args) throws Exception {
    	URL yahoo = new URL("http://monDynDNS/conf/config.txt");
    	BufferedReader in = new BufferedReader(
    				new InputStreamReader(
    				yahoo.openStream()));
     
    	String inputLine;
     
    	while ((inputLine = in.readLine()) != null)
    	    System.out.println(inputLine);
     
    	in.close();
        }
    }

    est ce susceptible de fonctionner? ou le probleme d'encodage/décodage reste le meme?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    précise toujours l'encodage dans ton bufferedReader, sinon tu va être dépendant de la plateforme qui exécute l'applet. Ainsi, si le fichier est en iso8859-1 et que la plateforme où s'exécute l'applet utilise par défaut de l'UTF-8, tu va te retrouver à essayer de lire en utf-8 un fichier au format iso8859-1 , ce qui aboutira à des erreurs.

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Par défaut

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

Discussions similaires

  1. Problème aléatoire de chemin de fichier
    Par wallys dans le forum C++
    Réponses: 2
    Dernier message: 16/09/2007, 15h02
  2. Problème de chemin de fichier avec des espaces
    Par Akronyme dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 11/12/2006, 17h12
  3. Problème de chemin de fichier complexe
    Par Gianluca dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/08/2006, 11h06
  4. [CKEditor] problème de chemin de fichier avec fck editor
    Par Benjiijneb dans le forum Bibliothèques & Frameworks
    Réponses: 7
    Dernier message: 31/01/2006, 09h05
  5. [MFC]Problème de chemin de fichier
    Par benahpets dans le forum MFC
    Réponses: 3
    Dernier message: 06/09/2005, 13h07

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