ObiWanKennedy
Messages postés60Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention29 octobre 2010
-
26 févr. 2006 à 11:46
ObiWanKennedy
Messages postés60Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention29 octobre 2010
-
26 févr. 2006 à 22:15
Bonjour, je travaille sur une application de gestion de playliste winamp donc voici ma fonction qui crée un fichier html avec divers renseignement.
public void creehtml(boolean allormissed)//true on affiche tous les fichier de la playliste et false on affiche que les fichiers manquants
{
boolean mp3;
if(allormissed)//on affiche tout.
{
try{
BufferedWriter fW= new BufferedWriter(new FileWriter("PlaylisteAll.html",true));
fW.write("<center>Voici une exportation de votre playList en Html</center>"+"\r\n");
fW.write("
");
fW.write("<table><tr><td>nom du fichier</td><td>chemin</td><td>Groupe</td><td>Titre</td><td>Statut</td></tr>");
String artistetemp=null,titretemp=null;
for(int i=0;i<file.size();i++)
{
mp3=false;
try
{
if((Vfichier.elementAt(i).toString().contains(".mp3"))&&(Existe.elementAt(i).toString().equals("oui")))
{
try//création d'un objet MP3File tampon je recupère les info que je désire et je passe mon temp à null et je vide "les dechets"
{
MP3File temp = new MP3File(Vfichier.elementAt(i).toString());
mp3=true;
artistetemp = temp.getArtist().getTextContent();
titretemp = temp.getTitle().getTextContent();
temp=null;
Runtime.getRuntime().gc();
}
//j'affiche divers information comme le chemin et le nom du fichier son
fW.write("<tr><td>");
fW.write(file.elementAt(i).toString());
fW.write("</td><td>");
int longueur = Vfichier.elementAt(i).toString().length()-file.elementAt(i).toString().length();
String temp2 = Vfichier.elementAt(i).toString().substring(0,longueur);
fW.write(temp2);
fW.write("</td><td>");
if(mp3)//si c'est un mp3 alors j'ecris les information issue du ID3v2 dans ma pages html
{
if(artistetemp!=null)
fW.write(artistetemp);//nom de l'artiste
else
fW.write(" ");
}
else //si c'est pas des mp3 j'ecris des espaces
{
fW.write(" ");
fW.write("</td><td>");
fW.write(" ");
}
artistetemp=null;//je passe mes chaines de caractrères a null.
titretemp=null;
fW.write("</td><td>");
if(Existe.elementAt(i).toString().equals("oui"))
{
fW.write("Présent"+"\r\n");
}
else
{
fW.write("Indisponible"+"\r\n");
}
}
catch(Exception e)
{
//System.out.println(ligne+" 1");
System.out.println(e.toString());
System.gc();//si une exception est reçu ici on vide les dechets.
}
}
fW.close();
}
catch(IOException e)
{
//System.out.println(ligne+" 1");
System.out.println(e.toString());
}
}
else//cette partie fonctionne tres bien.
{
try{
BufferedWriter fW= new BufferedWriter(new FileWriter("PlaylisteIndispo.html",true));
fW.write("<center>Voici liste des fichiers qui n'existe plus sur votre disque</center>"+"\r\n");
fW.write("
");
fW.write("
");
fW.write("<table><tr><td>nom du fichier</td><td>chemin</td></tr>");
for(int i=0;i<file.size();i++)
{
j'ai utilisée une librairy: http://www.vdheide.de/projects.html pour les classes MP3File et j'ai écris à l'auteur mais l'email n'est pas arrivé.
j'ai lu sur divers forum que cette erreur était un dépassement de la capacité mémoire de la JVM. J'ai vu diverses solutions comme l'option -Xmx250m pour augmenter l'espace mémoire de la JVM cela ne fonctionne pas et le garbage collector ne m'aide pas plus.
pour info: ma playliste contient 14 110 fichier de musique et celà plante vers le 1 300ème.
voila merci.
A voir également:
Exception in thread "awt-eventqueue-0" java.lang.outofmemoryerror: java heap space
cela marche bien mais je n'ai pas toutes les infos que je désire.
a oui, l'erreur exacte est java.lang.OutOfMemoryError : java heap space.
il serait logique que ce soit cette ligne.
MP3File temp = new MP3File(Vfichier.elementAt(i).toString());
la nouvelle allocation ne peut pas ce faire car il y a plus de mémpoire disponible.
ObiWanKennedy
Messages postés60Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention29 octobre 20101 26 févr. 2006 à 13:32
Ben non justement je stocke pas tous les mp3 dans des objets enfin du moins je ne veux pas faire ça mais c'est se qui a l'air de faire. Normalement je crée un objet je prends ce qui m'interesse et je le détruit mais la destruction ne se fait pas on dirait.
Normalement, je ne dois avoir qu'un seul objet MP3File en mémoire au maximun.
mais apparament je dirais qu'il y a une memory lack c-a-d que il me crée un objet et au lieu de le détruire et de recréer un objet au même endroit ben il en crée un autre. Mais je comprends pas pourquoi il fait.
voila.
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 26 févr. 2006 à 16:09
au lien de fait System.out.println(e.toString()); essaie de faire e.printStackTrace et on sauras ou se produit ou plutot quand ce produit l'exception
sinon moi je m'etais fait un petit prog qui me lister tout mes mp3 (2000) il ne planté pas je stocker des objets file dans un vector tout se passe tres bien
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 26 févr. 2006 à 17:51
joubliais apres j'ecrivais le vector dans un fichier textes je pense qu'il ny a pas grand chose a modifer pour en faire un html si tu veut le code je te le passerai par mail
ObiWanKennedy
Messages postés60Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention29 octobre 20101 26 févr. 2006 à 18:25
j'ai fait
catch(OutOfMemoryError e)
{
e.printStackTrace();
}
et en faite l'application continue je ne comprends pas mais sa n'affiche pas la date.
donc maintenant j'ai bien ma liste avec tout mes mp3 mais l'erreur revient plusieur fois durant l'execution.
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 26 févr. 2006 à 20:10
je veins de faire un code ou plutot modifier un code que j'avais fait permettant de lister les mp3 de mon pc ensuite d'apres un Vector il recupere tous les mp3 lister en fait des MP3File et ecrit dans un fichier texte qq info
j'avou que j'ai une frame exception que j'essai de resoudre
apparament la librairie n'aime pas certains mp3 j'ai des divisions par 0 pour certains mp3.
j'ai ajouté une vérification. Et moi aussi j'au des erreurs de frame avec certains fichiers
si tu trouves je veux bien.