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 :

[Javabean/sun.net.ftp] Downloader un fichier txt


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut [Javabean/sun.net.ftp] Downloader un fichier txt
    salut à tous,
    voilà j'ai un petit problème avec un javabean, j'utilise l'API sun.net.ftp pour faire des transferts de fichiers txt entre mon srv ftp et mon srv websphere. Je souhaite simplement récupérer un fichier texte, jusque le code ci dessous marchait très bien pour des fichiers "basiques" avec qq caractères dedans mais là j'ai un gros fichier à traiter avec plusieurs colonnes de chaines de caractères et bizarrement ça ne marche plus...
    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	public void downloadFile (String serverFile, String localFile) throws IOException {
    		int i = 0;
    		byte[] bytesIn = new byte[1024];
    		BufferedInputStream in = new BufferedInputStream(client.get(serverFile));
    		FileOutputStream out = new FileOutputStream(localFile);
    		while ((i = in.read(bytesIn)) >= 0) {
    			out.write(bytesIn, 0, i);
    		}
    		out.close();
     
    	}
    merci d'avance aux futures reply

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut
    Je n'ai jamais utilisé la classe byte et je ne connais pas son fonctionnement, mais on dirait que le 1024 que tu donnes dans le constructeur est une taille ?

    Si ca marche avec de petits fichiers et pas des gros, le problème vient surement d'unh problème de mémoire. Peut-être devrais-tu essayer avec une taille plus grande dans ton constructeur ?

    Mais bon je le répète, je ne connais absolument pas cette classe. Alors peut-être que je viens de dire une énormité ??!!

    @+

    ToCToF

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    effectivement je m'étais dis la même chose et là par dépis j'ai testé en mettant 99999999 et effectivement ça marche mais c'est pas bien pratique, qq sait si il y a une methode qui renvoit le nombre de bytes d'un fichier ? comme ça je met ça à la place dans "byte"
    merci pour ta réponse

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut
    Si tu ne trouves pas une méthode de ce genre, tu peux peut-être essayer avec MAX_VALUE ? (voir doc suivante). C'est pas propre mais ça marchera surement à tous les coups !!
    http://javasearch.developpez.com/j2s...html#MAX_VALUE

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut
    Sinon j'ai vu sur un code la chose suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    File file = new File("leCheminDuFichier");
    long length = file.length();
    if (length > Integer.MAX_VALUE) {
                //fichier trop grand
            }
    byte[] bytesIn = new byte[(int)length];
    Pris sur : http://javaalmanac.com/egs/java.io/File2ByteArray.html

    Bon courage !

    TocToF

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    ok merci pour ton aide, néanmoins je maintiens le topic ouvert à d'autres propositions qui pourraient me permettre de traiter de gros fichiers de façon propre

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

Discussions similaires

  1. [FTP] Lire un fichier txt sur un serveur FTP distant
    Par mathieu77186 dans le forum Langage
    Réponses: 3
    Dernier message: 29/01/2008, 17h10
  2. [FTP]Download un fichier sur le serveur
    Par bizet dans le forum ASP.NET
    Réponses: 1
    Dernier message: 29/08/2007, 15h13
  3. [2.0][vb.net] ftp transfert de fichier
    Par pasnet74 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/08/2006, 15h22
  4. Modifier la classe sun.net.ftp.*;
    Par koolway dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 07/03/2006, 20h16
  5. [FTP] download de fichiers sur serveur AIX
    Par han39 dans le forum MFC
    Réponses: 2
    Dernier message: 12/01/2006, 16h44

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