silverArm Posté(e) le 29 janvier 2004 Partager Posté(e) le 29 janvier 2004 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 29 janvier 2004 Partager Posté(e) le 29 janvier 2004 Heu sans plus d'indications ça va être dur de te répondre... Lien vers le commentaire Partager sur d’autres sites More sharing options...
silverArm Posté(e) le 30 janvier 2004 Auteur Partager Posté(e) le 30 janvier 2004 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) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 30 janvier 2004 Partager Posté(e) le 30 janvier 2004 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
silverArm Posté(e) le 2 février 2004 Auteur Partager Posté(e) le 2 février 2004 C'est bon j'ai trouvé comment faire avec la class randomaccessfile! Merci quand meme Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 2 février 2004 Partager Posté(e) le 2 février 2004 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.