Ecriture de String ds un fichier, puis lecture et affichage ds une fen - Java - Programmation
Marsh Posté le 13-06-2003 à 11:07:37
Un TextField n'affiche qu'une ligne de texte. Voir la classe (J)TextArea.
Marsh Posté le 13-06-2003 à 11:10:55
exact, merci par contre, comment puis-je ajouter du texte dedans, comme je le fais (ds une boucle)... il faudrait une méthode du type addText(String)... mais je rêve un peu là
Marsh Posté le 13-06-2003 à 11:14:49
sans compter que j'ai toujours les caractères bizarres, le setText ne doit pas etre bien pour ça
Marsh Posté le 13-06-2003 à 11:21:09
Désolé mais ton programme est horrible.
Petite correction rapide mais on peux mieux faire.
Code :
|
Marsh Posté le 13-06-2003 à 11:28:30
Comment ça horrible ?
Effectivement ça écrit bien dedans, mais en visualisant avec notepad, j'ai pas les retours à la ligne (normal ça) et avec word, j'ai des carrés entre chaque caractère.... Bon c pas bien grave si ils sont plus là à l'affichage dans le prog, qui faisait l'objet de ma seconde question
Le mieux pour afficher un log comme ça ds une fenetre, c koi ? JTextArea, JPanel ? et comment faire, j'ai pas réussi
Marsh Posté le 13-06-2003 à 11:43:34
sinon tu peux combiner ton JTextArea à un JScrollPane pour avoir des barres de défilement si ton texte est supérieur au dimension de ton champ de texte.
Marsh Posté le 13-06-2003 à 11:46:27
pour enlever mes caractères bizarres, pour l'instant je fais une fichier.writeChars(...), y'a mieux comme méthode ?
Marsh Posté le 13-06-2003 à 11:49:11
phnatomass a écrit : line+"\r\n" au lieu de line+"\n"; |
Code :
|
Marsh Posté le 13-06-2003 à 11:53:07
Autant pour moi mais j'avais la flemme de chercher le nom de propriété dans la doc.
Marsh Posté le 13-06-2003 à 11:57:10
phnatomass a écrit : Autant pour moi mais j'avais la flemme de chercher le nom de propriété dans la doc. |
Marsh Posté le 13-06-2003 à 11:59:25
et euh.... désolé de vous déranger, mais pour mes caractères bizarres ?
là j'ai des carrés entre chaque caractère, à l'écriture comme à la lecture... donc le pb vient bien de l'écriture et de mes writeChars (String)....
Merci
Marsh Posté le 13-06-2003 à 12:02:45
pilou51 a écrit : et euh.... désolé de vous déranger, mais pour mes caractères bizarres ? |
bah, ton fichier txt a surement un format a la con. T'essaie pas de lire un fichier crée sous windows avec linux par hasard?
Marsh Posté le 13-06-2003 à 12:07:16
nope, sous windows avec windows... et comme je l'ouvre qu'avec java (pas avec une application intermédiaire), je suis surpris de trouver ces caractères à la c**...
Marsh Posté le 13-06-2003 à 12:10:23
pilou51 a écrit : nope, sous windows avec windows... et comme je l'ouvre qu'avec java (pas avec une application intermédiaire), je suis surpris de trouver ces caractères à la c**... |
et si tu l'ouvres avec notepad (j'ai bien dit notepad pas autre chose) ca dit quoi?
Marsh Posté le 13-06-2003 à 12:11:36
avec notepad j'ai pas les carrés rajoutés, à part pour les sauts de ligne (ce qu'il fait avec tous les fichiers)...
Marsh Posté le 13-06-2003 à 12:29:06
pilou51 a écrit : avec notepad j'ai pas les carrés rajoutés, à part pour les sauts de ligne (ce qu'il fait avec tous les fichiers)... |
y a des accents dans ton fichier?
essaie un autre fichier qui a un contenu tout simple avec seulement des caractères sans accents
Marsh Posté le 13-06-2003 à 12:44:19
pilou51 a écrit : avec notepad j'ai pas les carrés rajoutés, à part pour les sauts de ligne (ce qu'il fait avec tous les fichiers)... |
C'est pas du texte sous codage Unicode ?
Marsh Posté le 13-06-2003 à 13:32:31
Y'a que des chiffres et des ":"
Comment je fais pour choisir le type de codage svp ?
Marsh Posté le 13-06-2003 à 14:39:52
Peux tu rappeler de manière général qu fais ton prog.
Au début tu dis que tu lis un ficher et que tu place dans un champ texte java, ensuite tu parle de fichier qui contient des caracteres bizzares sous notepad.
Ou est le rapport entre les 2 ?
Marsh Posté le 13-06-2003 à 14:44:12
euh désolé pour la clarté, je reprends tout depuis le début :
mon prog récupère des chaînes de caractère dynamiquement (pour l'instant c statique, mais peu importe) et les stocke ds un fichier... Cette récupération peut s'étaler sur plusieurs jours (période de vacances).
Au retour des vacances, l'utilisateur clique sur un bouton et visualise le contenu du fichier de log enregistré. Le tout étant multi-plateforme, je ne veux pas me contenter de faire un lien vers le fichier .txt, je veux l'afficher ds une fenetre java.
Pour l'instant, lorsque je regarde le fichier enregistré, ou que je l'affiche, j'ai des carrés qui viennent se rajouter entre chaque caractère. Voilou, j'espère que ça t'aidera (à m'aider )
Merci
Marsh Posté le 13-06-2003 à 14:49:40
Pour ecrire dans un fichier texte utilise un Filewriter et appele la méthode write(String str)
Marsh Posté le 13-06-2003 à 14:56:36
là je fais :
Code :
|
et ça me sort un fichier vide (0Ko). Idem si je fais sans le PrintWriter, directement le write du FileWriter...
De plus, comment puis-je faire pour me positionner à la fin du fichier pour rajouter des données (ces write se trouvent dans une boucle while(1)...)
Merci
Marsh Posté le 13-06-2003 à 15:00:05
Inutile d'utiliser un PrintWriter
dans ton cas file.flush(); lorsque t' as finit d'écrire tout tes éléménts
Pour aller à la fin d'un fichier RandomAccesFile est ton amis.
Avec un seek(ton_fichier.length());
Marsh Posté le 13-06-2003 à 15:02:47
vi j'utilisais bien un RandomAccessFile avant, avec son writeChars(string)... je vais coupler les 2 alors.
Là, meme avec un flush() devant, ça m'écrit toujours rien ds le fichier
Marsh Posté le 13-06-2003 à 15:04:29
Mon code d'écriture complet, au cas où je me planterais vraiment... :
Code :
|
Marsh Posté le 13-06-2003 à 15:06:19
Le flush c'est apres avoir ecrit le fichier.(juste avant de le fermer par exemple )
Marsh Posté le 13-06-2003 à 15:09:55
youpi ça marche, il me met plus de carac bizarre
par contre, il m'écrit qu'une seule fois, il rajoute pas à la fin
Marsh Posté le 13-06-2003 à 15:21:26
Voilà ton prog
Code :
|
Sinon serieusement sans vouloir être méchant. Quand on te tuyaute sur une classe ou une méthode passe un peut de temp à lire la doc /et ou javadoc et essaye de reellement comprendre le fonctionnement de ce que tu écris
Marsh Posté le 13-06-2003 à 15:26:07
vi je veux bien mais...
y'a pas de write(String) dans RandomAccessFile, y'a que le writeChars que j'utilisais tout à l'heure et qui me rajoute des caractères....... ni de flush d'ailleurs si je galère c parceque j'essaie de combiner RandomAccessFile et le FileWriter dont tu m'as parlé plus haut... après, désolé si j'ai l'air un peu boulet, mais on se change pas
Marsh Posté le 13-06-2003 à 15:31:02
vivi et c celui que j'avais au début (sauf qu'il faut changer write en writeChars et enlever flush parceque ça n'existe pas sous RandomAccessFile), qui permet bien de rajouter des trucs en fin de fichier, mais me met ces fichus carrés
Merci bcp d'essayer en tt cas...
Marsh Posté le 13-06-2003 à 15:34:26
Ok.
Mais t'as essayé write(byte [] b);
en appelant la méthode getBytes() sur tes String ?
Marsh Posté le 13-06-2003 à 15:37:04
oui, et ça fait des trucs encore plus bizarres, en plus des carrés j'ai des @ et autres caractères spéciaux
Marsh Posté le 13-06-2003 à 16:05:33
Voila un exemple de programme qui tourne parfaitement chez moi.
Je ne sais pas si ça ressemble un peu à ce que tu veux faire.
Code :
|
Marsh Posté le 13-06-2003 à 16:12:35
ouiiiiiiiiii ça marche enfin, merci infiniment
en fait, c t vraiment une connerie et je comprends pas vraiment, j'ai viré le + dans mes write, et séparé en 2 (en faisant 2 fois getBytes() du coup) et là ça marche
merci pour ta patience aussi
Marsh Posté le 13-06-2003 à 11:05:35
Je fais une boucle qui écrit des String ds un fichier de la manière suivante :
le problème étant que ça me rajoute des caractères bizarres...
Mon deuxième problème est que j'aimerais lire et afficher le contenu de ce fichier ds une fenetre, et je ne vois pas trop comment faire...
Merci d'avance