Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2780 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [java][PrintWriter] Pbm d'arrêt non commandé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java][PrintWriter] Pbm d'arrêt non commandé

n°1970287
labiche54
Posté le 01-03-2010 à 17:47:12  profilanswer
 

Bonjour,  
 
Essayant de développer une appli pour la synchronisation des sous titres, je suis em...dé par la fonction PrintWriter qui, je ne sais pas pourquoi, s'arrête brusquement de fonctionner sans afficher un qqc message d'erreur.  
Plus précisément, mon appli fonctionne comme ça : dans une boucle While, je lis dans mon fichier de sous titre une ligne, si elle doit être modifiée je la modifie, puis je la réécris dans un fichier ".txt" que j'ai créé avant de rentrer dans ma boucle. Ma condition d'arrêt est qu'il n'y ai plus de ligne à lire.  
Ayant inséré un compteur, je vois bien que ma boucle tourne jusqu'à la condition d'arrêt demandée, mais ce PrintWriter de m..... s'arrête à environ 2% du fichier de départ, je ne vois pas du tout pourquoi !  
 
Voici le code : (c'est un peu du travail de bourin (je débute ))
 

Code :
  1. import java.io.*;
  2. public class Synchroniseur {
  3. public static void affiche(String avance_sec, String deformation, String cheminFichier, String nomFichier) throws IOException
  4. {
  5. String ligne;
  6. cheminFichier = cheminFichier.replace('\\','/');
  7.  
  8.  try
  9.  {
  10.   double sec_sync = Double.parseDouble(avance_sec);
  11.   double a=-Double.parseDouble(deformation);
  12.   BufferedReader ficTexte;
  13.   ficTexte = new BufferedReader(new FileReader(new File(cheminFichier+'/'+nomFichier)));
  14.     
  15.   File sortie = new File(cheminFichier+"/temp.srt" );
  16.   PrintWriter out  = new PrintWriter(new FileWriter(sortie));
  17.   if (ficTexte == null)
  18.   {
  19.    throw new FileNotFoundException("Fichier non trouvé: "+ nomFichier);
  20.   }
  21.   int k = 0;
  22.   String ancLigne_i="00000000000000000000000000000";
  23.   Plage anciNplage;
  24.   Plage nouvLplage = new Plage(ancLigne_i);
  25.   double nouvoSup_i = 0;
  26.   double nouvoInf_i = 0;
  27.   double ancienSup_i;
  28.   while ((ligne = ficTexte.readLine()) != null){
  29.    if (ligne != null)
  30.    {
  31.     boolean present = testCharTable.chainePresente(ligne,"-->" );
  32.     if (present)
  33.     {
  34.      if (k==0) {ancienSup_i = sec_sync;}
  35.      else
  36.      {
  37.       ancienSup_i = nouvLplage.plageSup;
  38.      }
  39.      anciNplage = new Plage(ancLigne_i);
  40.      double ancienSup = anciNplage.plageSup;
  41.      ancLigne_i = ligne;
  42.      nouvLplage = new Plage(ligne);
  43.      double nouvoInf = nouvLplage.plageInf;
  44.      double nouvoSup = nouvLplage.plageSup;
  45.      nouvoInf_i = ancienSup_i + (1-a)*(nouvoInf-ancienSup);
  46.      nouvoSup_i = nouvoInf_i + (1-a)*(nouvoSup-nouvoInf);
  47.      nouvLplage.plageInf = nouvoInf_i;
  48.      nouvLplage.plageSup = nouvoSup_i;
  49.      nouvLplage.Converti();
  50.      Merge(nouvLplage,ligne);
  51.      Printer(nouvLplage, ligne, out);
  52.      k++;
  53.     }
  54.     else
  55.     {
  56.      String str_i = new String(ligne.toCharArray());
  57.      InterfaceAuto.listeMod.addElement(str_i);
  58.      InterfaceAuto.listeModS.addElement(str_i);
  59.      try{
  60.            out.println(ligne);
  61.          }
  62.      catch(Exception e){
  63.            e.printStackTrace();
  64.          }
  65.     }
  66.    }//fin if  
  67.   }//fin while
  68.  }
  69.  catch (FileNotFoundException e) {
  70.  System.out.println(e.getMessage());
  71.  }
  72.  catch (IOException e) {
  73.  System.out.println(e.getMessage());
  74.  }
  75. }
  76. public static void Merge(Plage plage, String ligne) {
  77.  String str = "abcdefghijklmnopqrstuvwxyzéèà";
  78.  String str_i = ligne;
  79.  for(int i=0; i<29;i++)
  80.  {
  81.    if(i==2||i==5||i==8||i==12||i==13||i==14||i==15||i==16||i==19||i==22||i==25)
  82.    {
  83.   char tmp = str.charAt(i);
  84.   str = str.replace(tmp,ligne.charAt(i));
  85.    }
  86.        else
  87.        {
  88.         char c=' ';
  89.         if (plage.chiffre[i] >= 0 && plage.chiffre[i] <= 9)
  90.         {
  91.          c = Character.forDigit(plage.chiffre[i], 10);
  92.         }
  93.         char tmp = str.charAt(i);
  94.     str = str.replace(tmp,c);
  95.        }
  96.  }
  97.  InterfaceAuto.listeMod.addElement(str_i);
  98.  InterfaceAuto.listeModS.addElement(str);
  99. }
  100. public static void Printer(Plage plage, String ligne, PrintWriter out) {
  101.  try{
  102.        for(int i1=0; i1<29;i1++)
  103.        {
  104.         if(i1==2||i1==5||i1==8||i1==12||i1==13||i1==14||i1==15||i1==16||i1==19||i1==22||i1==25)
  105.         {
  106.         out.print(ligne.charAt(i1));
  107.         }
  108.         else out.print(plage.chiffre[i1]);
  109.        }
  110.        out.println();
  111.      }
  112.  catch(Exception e){
  113.        e.printStackTrace();
  114.      }
  115. }
  116. }

mood
Publicité
Posté le 01-03-2010 à 17:47:12  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java][PrintWriter] Pbm d'arrêt non commandé

 

Sujets relatifs
Script java zoom d'images[Débutant] Erreur : java.lang.NullPointerException
Interface java[ANT] Ouvrir un fichier avec commande
probleme java interface graphiqueAide Tableau Java
[OK] Problème de connexion entre Java (par Eclipse) et MAMPAide en Java
Extraction des métadonnées encoder en rdf avec java 
Plus de sujets relatifs à : [java][PrintWriter] Pbm d'arrêt non commandé


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR