Recuperer fichier java

dioulde -  
 Achir -
Bonjour à tous,
svp quelqu'un pourrai me dire comment recuperer un fichier 'xml' en java.

j'essaye de le faire mais au fait je recupere que son URL en fait . ( String finch_URL = ("chemin ici"); )

moi je veux recupere son contenu .

merci .
Configuration: Windows XP Internet Explorer 6.0

17 réponses

  1. Phortitou Messages postés 231 Statut Membre 27
     
    T'as essayé avec la classe URL? Tu crée un objet URL à partir de l'url de ton fichier et ensuite tu récupères le contenu dans un InputStream
    1
  2. dioulde
     
    en fait le fichier se trouve sur mon ordi ,
    donc je pense pas que çà soit la bonne methode .

    je veux recuperer son contenu pour l'envoyer dans une socket par exemple

    mais moi j'envoie que son chemin .

    merci

    (je travail sous eclipse)
    1
  3. Phortitou Messages postés 231 Statut Membre 27
     
    Moi aussi je travaille sous Eclipse, il est vraiment excellent ce logiciel, dommage qu'on ne puisse pas le noter ici.

    BREF, pour répondre à ta question, si le fichier est sur ton ordinateur, c'est encore plus simple. T'as juste à utiliser la classe File. Après je sais pas ce que tu veux en faire, mais si tu veux l'afficher, ben tu crées un InputStream à parti de ton objet File (c'est beacoup plus simple que depuis un URL). Tu veux faire quoi exactement?
    0
  4. dioulde
     
    Oui t'a raison pr eclipse
    pr moi c'est le meilleur IDE , je l'utilise pr tout faire presque

    pour ma question : j'ai un fichier xml donc (.txt) et je veux l'envoyer à un serveur via une socket et afficher la reponse du serveur.
    voici la methode ke j'utilise :

    public void envoieMessage(){

    String filePath = "C:/Documents and Settings/........./workspace/monFichier.txt";
    InputStream in ; // flux d'entrée
    OutputStream out; // flux de sortie

    if (!connexionServeur()){
    System.out.println("Socket à null");}
    else {System.out.println("Client >> Socket ouvert ");}

    try{
    out = sock.getOutputStream();
    in = sock.getInputStream();

    FileInputStream FileInput = new FileInputStream(filePath);

    out.write(filePath.getBytes("ascii")); // écris dans le flux
    out.flush();//flush() permet de "vider" le flux pour s'assurer que tout a été envoyé

    StringBuffer buffer = new StringBuffer();
    sock.setSoTimeout(5000); // un timeOut de 5 seconde pour la lecture du fichier
    try{

    while ( true ) {
    int charReceived = FileInput.read();
    if ( charReceived == -1 ) {
    break;
    }
    buffer.append(charReceived + "\n");

    }
    }catch(IOException e){
    System.out.println("temp d'attente pour la reception écoulé : >>" +e.getMessage());
    e.printStackTrace();
    }
    try{
    while (true) {
    int currentByte = FileInput.read();
    if ( currentByte == -1 ) {
    break;
    }
    out.write(currentByte);
    }
    }
    catch (IOException e){
    System.out.println(" erreur en écriture : >>"+e.getMessage());
    e.printStackTrace();
    }
    System.out.println("message envoyé au serveur > ");

    try { // Lecture de la reponse du serveur
    in.read();

    } catch (IOException e){
    System.out.println("erreur reception : "+ e.getMessage());
    }

    }catch(IOException e){
    System.out.println("erreur envoie du Message : "+e.getMessage());
    e.printStackTrace();

    }
    }
    }// fin envoie()

    merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    J'ai une question :

    Puisque tu as un code, peux-tu nous dire ou ca bloque dans le code?
    0
  7. dioulde
     
    l'erreur se situe au niveau de : FileInputStream FileInput = new FileInputStream(filePath);

    et au niveau de ( in.read )
    c-a-d :
    try { // Lecture de la reponse du serveur
    in.read();

    } catch (IOException e){ }

    Je crois ke je n'envoie pa le contenu du fichier .

    si vous avez une methode plus simple que la mienne merci
    0
  8. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Et quelle sont les erreurs données par Eclipse?
    0
  9. dioulde
     
    est - ce que ma methode est dejà bonne ou pas ?

    il me renvoie une erreur d'exception sur le "in.read" et le fileInputStream.

    c'est pour celà j'ai fai un catch sur le 'in.read"
    0
  10. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Il faudrait nous donner les 2 exceptions remontées par Eclipse
    0
  11. dioulde
     
    desolé pr le retard

    voici les erreurs ke eclipse renvoie :

    java.io.FileNotFoundException:
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)



    encore merci
    0
  12. biboo
     
    Bah il ne trouve pas le fichier tout simplement, donc le chemin n'est pas bon.
    Il me semble qu'il faut plutôt écrire le chemin d'accès avec des antislashs (doublé d'un caractère d'échappement), du type :

    String filepath = "c:\\Dossier 1\\Dossier 2\\Fichier.txt";
    0
  13. dioulde
     
    non en fait il ne trouve pa le fichier pasque c'est que le lien que j'envoie

    je devrai utiliser File monFichier = new File ();

    puis envoyer utiliser les Stream.

    mais je sai pa trop comment je doi le faire
    0
  14. Phortitou Messages postés 231 Statut Membre 27
     
    public String fileToString(String cheminDuFichier) {
    FileInputStream fis = null;
    File f = new File("cheminDuFichier");
    try {
    fis = new FileInputStream(f);
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    byte[] b = new byte[(int)f.length()];
    try {
    fis.read(b);
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return new String(b);
    }

    J'ai pas testé
    0
  15. dioulde
     
    Public String fileToString(String cheminDuFichier) {
    FileInputStream fis = null;
    File f = new File(cheminDuFichier); sans les "" try {
    fis = new FileInputStream(f);
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    byte[] b = new byte[(int)f.length()];
    try {
    fis.read(b);
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return new String(b);
    }
    et çà recupère bien le contenu d'un fichier
    faut juste indiquer le chemin dans le main et çà le fait

    mais comment on envoie le fichier dans une socket ?
    0
  16. Phortitou Messages postés 231 Statut Membre 27
     
    Alors c'est ça c'est une toute autre histoire.
    0
    1. biboo
       
      Bah non, il a corrigé ton erreur puisque tu n'utilisais pas le paramètre.
      0
  17. Achir
     
    ok ok
    dès ke je trouve je vous le montre
    mille thanks
    0