[Java] Pb avec un PrintWriter.print() ?

Pb avec un PrintWriter.print() ? [Java] - Java - Programmation

Marsh Posté le 13-05-2005 à 06:30:04    

Bonjour,
 
J'utilise deux méthodes en remplacement de System.out.print() et System.out.println() pour pouvoir afficher correctement les accents dans une console dos/windows. Voilà le code:

Code :
  1. static String codepage = "CP850";
  2.    
  3.     public static void print(String texte)
  4.     {
  5.         try
  6.         {
  7.             PrintWriter outWriter = new PrintWriter(new OutputStreamWriter(System.out, Charset.forName(codepage)), true);
  8.             outWriter.print(texte);
  9.         }
  10.         catch (Exception e)
  11.         {
  12.             e.printStackTrace();
  13.         }
  14.     }
  15.    
  16.     public static void println(String texte)
  17.     {
  18.         try
  19.         {
  20.             PrintWriter outWriter = new PrintWriter(new OutputStreamWriter(System.out, Charset.forName(codepage)), true);
  21.             outWriter.println(texte);
  22.         }
  23.         catch (Exception e)
  24.         {
  25.             e.printStackTrace();
  26.         }
  27.     }


Mon PrintWriter n'a pas l'air d'aimer le print(texte): println affiche ce qu'il faut, mais print n'affiche rien, quelque soit la chaine (avec accents ou pas).
 
Je ne vois pas pourquoi un print ne marcherait pas si un println marche, mais je suis trèèèèèès loin d'être expert en java aussi :whistle: donc si quelqu'un a une solution ou un indice à me donner... merdi d'avance :)

Reply

Marsh Posté le 13-05-2005 à 06:30:04   

Reply

Marsh Posté le 13-05-2005 à 07:02:07    

Euh je me réponds à moi-même, ça marche avec ça:

Code :
  1. PrintWriter outWriter = new PrintWriter(new OutputStreamWriter(System.out, Charset.forName(codepage)));
  2. outWriter.print(texte);
  3. outWriter.flush();


Quelqu'un peut m'expliquer la nécessité du flush après un print? Le print écrit le texte dans un buffer, et le flush vide ensuite le contenu du buffer dans System.out c'est ça? (pas taper :sweat:)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed