Posté(e) le 29 janvier 200421 a Voila je galère grave j'ai une erreur "out of memory" lorsque je lance mon prog Java. Apparement ca viens du buffer peut pas etre allouer car son type permet pas une taille aussi grande! J'utilise: byte[] octetsFichiers = new byte[taille]; Voila si vous pouviez m'aider mici a tous
Posté(e) le 30 janvier 200421 a Auteur voila un extrait du prog try { Socket c = new Socket(InetAddress.getByName("10.20.104.8"),4444); File file = new File("c:/toto.avi"); //creationd'un objet file ayant comme chemin d'acces int taille = (int)file.length(); ///calcule la taille de ce fichier System.out.println("Taille : "+taille); FileInputStream filein = new FileInputStream(file);//ouverture d'un flot de lecture sur l'objet de type file byte[] octetsFichiers = new byte[taille];//declaration d'un tableau ayant comme contenance la taille du fichier toto //c'est ici que ca plante je crois, le type byte ne peut pas contenir autant d'info c.a.d un film qui fait environ 700Mo!!! filein.read(octetsFichiers); DataInputStream in = new DataInputStream(c.getInputStream()); DataOutputStream out = new DataOutputStream(c.getOutputStream()); out.writeInt(taille); out.write(octetsFichiers); out.flush(); filein.close(); c.close(); } voila j'espère que tu pourras me trouver une class qui me gère ça (j'ai essayé LongBuffer mais j'ai le meme problème)
Posté(e) le 30 janvier 200421 a Euh une allocation mémoire de 700 Mo je pense que c'est un peu abusé, si tu en arrives là c'est que tu as dû faire une erreur de conception quelque part... Essaie plutôt de charger des bouts du fichier seulement ? Ou de changer ton algorithme. Concernant la technique pure, je ne pense pas qu'il y ait de limite physique à la taille des tableaux, je dirais plutôt que ça dépend de la machine virtuelle qui n'arrive pas à demander 700 Mo à l'OS... Tu as combien de ram ? et de swap ?
Posté(e) le 2 février 200421 a Auteur C'est bon j'ai trouvé comment faire avec la class randomaccessfile! Merci quand meme
Posté(e) le 2 février 200421 a Ah, content pour toi :8 Enin c'est bien ce que je pensais : mettre un fichier de 700 Mo en mémoire, ça sentait l'erreur de conception
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.