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 :

BufferOverflowException sur un String


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 82
    Points : 43
    Points
    43
    Par défaut BufferOverflowException sur un String
    bonjour,

    j'ouvre un fichier, le lit et recupere tout dans un tableau de bytes.
    je converti ce tableau en String:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    byte tab_byte[] = new byte[size];
    catia_file_for_read.read(tab_byte);                        
    str = new String(tab_byte);
    le probleme:
    avec un fichier texte de 10mo, ca passe.
    avec un fichier de 20mo: bufferOverflowException sur "new String"
    avec un fichier de 40mo, ca passe.
    avec un fichier de 80mo, meme exception qu'avec le 20mo.

    qq1 a-t-il une idee d'où cela peut venir, et comment resoudre ce probleme?

    merci d'avance

  2. #2
    Membre habitué Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Points : 127
    Points
    127
    Par défaut
    A mon avis, ça dépend de ce que tu as en mémoire à ce moment là...

    Néamoins, je ne peux te conseiller de ne jamais charger le contenu entier d'un fichier en mémoire. Mieux vaut travailler avec des buffers un rien plus petit (tu peux imaginer un buffer de 1 Mo par exemple, c'est bien pour ce que tu as comme fichier).
    Que la Schtuche soit avec vous !!!

  3. #3
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    10 Mo dans un String !!! Mais ça va pas !!!

    La pauvre ......

    Toine

  4. #4
    Membre actif Avatar de xxaragornxx
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par onlytoine
    10 Mo dans un String !!! Mais ça va pas !!!

    La pauvre ......

    Toine
    On peut monter bien plus haut (160 Mo au moins) , même si ce n'est pas top:
    http://www.oreillynet.com/pub/wlg/6303

  5. #5
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    Mais... Mais... C'est inhumain !!!

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 82
    Points : 43
    Points
    43
    Par défaut
    le truc bizarre, c'est que ca marche avec 40mo, et pas avec 20...
    donc s'il y avait un prob de memoire, ca devrait crasher aussi sur 40mo non?

  7. #7
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 859
    Points : 4 809
    Points
    4 809
    Par défaut
    Pourquoi ne pas passer plutôt par un StringBuffer ? C'est fait pour ça, non ?

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 82
    Points : 43
    Points
    43
    Par défaut
    Je suis "obligé" de passer par un tableau de bytes pour éviter les problèmes d'encodage (Cyrillic, ....). Avec cette méthode, je n'ai pas besoin d'ouvrir les fichiers en précisant l'encodage de l'environnement.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 70
    Points : 57
    Points
    57
    Par défaut
    En fait c'est un bug rapporté chez Sun qui est corrigé avec la version 1.5.:
    http://bugs.sun.com/bugdatabase/view...bug_id=4949631
    (voir la fin de la page, c'est exactement le même problème)

    Il semble qu'il n'y ait pas de problème en stockant les données dans un tableau de char puis en créant une chaîne à partir de ce tableau.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 82
    Points : 43
    Points
    43
    Par défaut
    merci

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

Discussions similaires

  1. Question sans prétention sur un String
    Par arsenik7 dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2006, 08h44
  2. Pb sur les String entre navigateurs
    Par chpog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/09/2005, 10h59
  3. [Debutant] Pb sur les string
    Par chpog dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 16/09/2005, 12h03
  4. Realiser des tests exhaustifs sur les String
    Par Sarrus dans le forum Langage
    Réponses: 9
    Dernier message: 07/07/2005, 11h52
  5. [débutant]travailler sur contenu string
    Par Serge76 dans le forum SL & STL
    Réponses: 13
    Dernier message: 06/11/2004, 16h43

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