Ecriture le caractere '\n' au format windows dans un fichier.. [JAVA] - Programmation
Marsh Posté le 22-03-2001 à 07:28:55
Faut que tu ecrives '\r' suivi de '\n' pour etre au format DOS.
(et sur un mac, ce serait remplacer les '\n' par des '\r')
On a deja repondu a cette question avant hier.
A+,
Marsh Posté le 22-03-2001 à 07:35:57
Oueh mais en fait je lui file directement une variable de type String.
Je vois mal comment remplacer les '\n' contenus dans ma variable par des '\r\n' paske y'a pas trop de fonctions qui remplace un caractere par 2 je crois.
Une idée?
Marsh Posté le 22-03-2001 à 08:01:02
>Je vois mal comment remplacer les '\n' contenus dans ma variable par des '\r\n' paske y'a pas trop de fonctions qui remplace un caractere par 2 je crois
Ben tu cree un StringBuffer a partir de ta String, tu inseres un '\r' devant chaque '\n', puis tu crees une String a partir de ton StringBuffer et basta! (ou plutot, tu utilises StringBuffer.toString() dans le 2e cas)
Y'a peut etre des fctions pour automatiser ca, mais java, j'y touche assez peu, donc je ne sais pas; je bosse en C/C++.
A+,
[edit]--Message édité par gilou--[/edit]
Marsh Posté le 22-03-2001 à 08:21:37
Sinon, tu peux aussi essayer de deriver une classe BufferedWriter (DOSBufferedWriter par exemple) ou tu redefinis la methode newLine().
[Me semble nettement mieux comme solution]
A+,
Marsh Posté le 22-03-2001 à 08:28:17
Oueh mais en fait le probleme c'est que ma String que je veux convertir proviens d'un JTextArea sur lequel je fais un getText(). En plus le JTextArea en question il a été rempli avec des append(), qui donc ne met pas le caractere NewLine que je voudrais. Donc je peux pas trop utiliser ta seconde methode qui peut marcher mais dans un autre contexte on va dire.
Je vais peut etre utiliser la premiere... enfin je sais pas.
En tout cas merci bcp pour tes renseignements.
Marsh Posté le 22-03-2001 à 09:07:47
Euh pour ceux que ca interesse...
j'ai trouvé une methode bourrine mais qui marche parfaitement.
A Chaque fois que je fais un append sur mon JTextArea, juste apres je fais, dans un try (j'ai pas le choix), un :
insert("\r",getLineEndOffset(getLineCount())-2);
Et ca fait ce qu'il faut.
Marsh Posté le 22-03-2001 à 05:42:27
J'ai essayé avec FileOutputStream/ObjectOutputStream ou encore RandomAccessFile mais dans tous les cas le caractere '\n' est au format unix, et est donc representé par un carré, ce qui fait pas tres propre pour un fichier de log.
Y'a t'il un moyen d'écrire ce caractère au format windows et qu'il aille donc à la ligne a chaque fois?
Merci d'avance