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 :

Accrochez vous ! erreur de read ftp unix


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut Accrochez vous ! erreur de read ftp unix
    Bonjour à tous !

    L'erreur que j'ai est énorme..
    J'y ai travaillé assez longtemps je pense pour donner ma langue au chat...

    Je lis un fichier sur un serveur UNIX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
           URL monUrl = new URL("ftp://root:xxx@192.168.1.1/home1/monfichier");
           URLConnection flux = monUrl.openConnection();
           InputStream  unFile = flux.getInputStream();
           String charSet = "ISO-8859-2";
           BufferedReader monFileReader;
           monFileReader = new BufferedReader(new InputStreamReader(unFile,charSet));
    C'est un fichier qui contient des enregistrements de 512 octet.
    Je parcours mon fichier avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monFileReader.read(new char[512])
    j'affiche ce que je lis et tout va bien les premiers enregistrements ensuite ça se décale !!!
    Pourtant personne d'autre accede au serveur et aucun processus n'accede au fichier.
    Le pire et ça c'est le pompom c'est que le décalage ne se crée pas toujours au même endroit.

    J'ai éssayé de transferer le fichier d'unix à Windows via le client ftp de windows. J'utilise la méthode classique de java qui permet de lire un fichier en local et là ça marche !!
    Sinon en utilisant fopen et fread de PHP ça marche aussi.

    Si vous comprenez quelque chose ecrivez moi de toute urgence tr ttrrr
    ah c'est dur tr trr

  2. #2
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    que veux-tu dire par décalages ?

  3. #3
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Hmmm... J'imagine que tu ne peux pas lire un flux à partir d'un ftp comme ça à partir d'une URL... Tu dois, en plus des données, recevoir les msgs du protocol FTP qu'il faut traiter (d'où les décalages)...

  4. #4
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    Le décalage :

    09916
    09917
    09917
    09918
    09918
    0991
    0991

    je devrais avoir 9919 au lieu de 0991.Donc à un momment donné il lit moins que ce qu'il devrait lire...
    J'ai résolu mon probleme en mettant un Thread.sleep mais je ne vois toujours pas de quoi ca vient ...

    Hmmm... J'imagine que tu ne peux pas lire un flux à partir d'un ftp comme ça à partir d'une URL... Tu dois, en plus des données, recevoir les msgs du protocol FTP qu'il faut traiter (d'où les décalages)...
    Rom --> Alors le décalage devrait avoir lieu au même endroit à chaque relecture complete du fichier

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Pourrait-on avoir plus de détails ? Genre le mode utilisé (Binaire ou ascii), un exemple concret de fichier transféré foireux.

    Si c'est de l'ascii, je soupçonne un remplacement de \n par \r\n inopportun ou inversement. Y'a-t-il des caractères accentués dans le transfert à effectuer ? Le charset ISO-8859-2 est-il justifié ? Si c'est du binaire, est-ce que le buffer est systématiquement et complètement rempli ?

    Enfin, on a de maigres détails, là

  6. #6
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Par défaut
    C'est un fichier cobol indexé.(considere que c'est du ascii)
    Le charset est OK.
    Pour le changement de caractere j'y avais pensé mais, dans ce cas, l'erreur se recréerait au même endroit.
    Et comme je l'ai déjà dit lorsque je transfert le fichier sous windows (sans remplacement de caractere ) la lecture se deroule normalement.
    Je pense que c'est + une question de buffer peut etre. Tu peux m'en dire + sur la manipulation d'un buffer.

    Merci.

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

Discussions similaires

  1. Transfert FTP Unix
    Par AAWOOPY56 dans le forum Unix
    Réponses: 3
    Dernier message: 17/11/2009, 16h00
  2. Transfert ftp Unix
    Par AAWOOPY56 dans le forum Unix
    Réponses: 4
    Dernier message: 30/07/2009, 11h09
  3. Erreur class.image.config.unix & class.image.interface
    Par pucenet dans le forum Langage
    Réponses: 2
    Dernier message: 18/06/2008, 06h32
  4. comment transférer un fichier d'un serveur ftp unix vers un client ftp dos ?
    Par chercheur3 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 21/06/2007, 10h47
  5. Différence entre ftp Windows et ftp unix
    Par diamonds dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 07/12/2006, 20h04

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