Aller au contenu

JAVA


silverArm

Messages recommandés

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) :francais:

Lien vers le commentaire
Partager sur d’autres sites

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...