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

  FORUM HardWare.fr
  Programmation
  Java

  Problèmes d'écriture dans un fichier : fichier vide

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problèmes d'écriture dans un fichier : fichier vide

n°1286670
emie31
Posté le 18-01-2006 à 15:27:25  profilanswer
 

Bonjour,  
 
J aimerai créer un fichier "resultats", dans lequel j ajoute à chaque fois une ligne. J arrive à le créer mais il est vide.  
Pouvez-vous me dire ce qui ne va pas dans mon code ?  
 
Merci d avance pour votre aide.  
 
Emie  
 
Voici mon code :  
 
import java.io.RandomAccessFile;  
 
public class GenerateExperiences {  
 
Liste ml;  
static Sim svc;  
 
public GenerateExperiences() {  
this.ml = ml;  
this.svc = svc;  
createFiles();  
}  
 
public void createFiles() {  
 
RandomAccessFile f;  
 
int[] pop = { 10, 100 };  
float[] prob = { 0.01F, 0.02F };  
float[] level = { 0.1F, 0.2F };  
 
try {  
f=new RandomAccessFile(\\\"resultats.txt\\\",\\\"rw\\\" );  
f.seek(f.length());  
for (int j = 0; j < pop.length; j++) {  
for (int k = 0; k < prob.length; k++) {  
for (int l = 0; l < level.length; l++) {  
svc = new Sim(pop[j],prob[k],level[l]);  
String s = \\\"popInit\\\"+popInit[j]+\\\"\\\\t\\\"+\\\"probaRep\\\"+probaRep[k]+\\\"\\\\t\\\"+\\\"levelSalience\\\"  
+levelSalience[l]+\\\"\\\\t\\\"+\\\"nbMess\\\"+ml.getMessages().size()+\\\"\\\\t\\\"+\\\"nbMessInit\\\"+ml.getNbMessage(0)
+\\\"\\\\t\\\"+\\\"nbMessRep\\\"+ml.getNbMessage(1)+\\\"\\\\n\\\";  
f.setLength(f.length() + s.length());  
f.writeBytes (s);  
}  
}  
}  
f.close();  
}  
 
catch (Exception e) {  
System.err.println(\\\"error \\\"+e.getMessage());  
}  
}  
 
public static void main(String[] args){  
GenerateExperiences genExpe = new GenerateExperiences();  
}  
}

mood
Publicité
Posté le 18-01-2006 à 15:27:25  profilanswer
 

n°1286954
trevor
laissez la vie vous étonner...
Posté le 18-01-2006 à 19:10:12  profilanswer
 

qqes petites choses (même si ca ne répond pas exactement à ta question, cela pourra aider, ou permettre d'avancer):
- place ton code entre 2 balises [code ][/code] ca sera + facile à faire
- indente un petit peu (notamment l'imbrication des boucles for)
- tu peux utiliser un StringBuffer plutot que d'utiliser la surcharge de l'opérateur + de la classe String
- je ne comprend pas l'intérêt de tous ces \\ ou \", tu peux nous en dire + ?
- tu as essayé de faire une écriture simple dans ton fichier ?


Message édité par trevor le 18-01-2006 à 19:11:09

---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1287226
wapcamer
Posté le 19-01-2006 à 00:00:44  profilanswer
 

Bonjour,
pourquoi n'essayes-tu pas simplement avec un File plutot que RandomAccessFile ?
 

Code :
  1. PrintStream log = null;
  2. String logFile = "/MonFichier.txt";
  3. try {
  4.   log = new PrintStream(new FileOutputStream(new File(logFile)));
  5. }
  6. catch (Exception ex) {
  7.   log = System.out;
  8. }


 
et puis ya plus qu'à faire un  

Code :
  1. log.println("montexte" );


pour rajouter une ligne


---------------
Voir les RAW sous Android: https://market.android.com/details? [...] .RawVision Blog Photo: http://photouch.me Applications mobiles: http://caketuzz.com Wapcam Project: http://wapcam.mobi
n°1287232
the real m​oins moins
Posté le 19-01-2006 à 00:35:49  profilanswer
 

et un flush.
et gerer ses exceptions correctement.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1287269
emie31
Posté le 19-01-2006 à 09:42:19  profilanswer
 

Voici de nouveau mon code, entre les balises, et un peu nettoyé. Qu'en pensez-vous ? Merci.
Sinon, qu'entends-tu par "écriture simple dans ton fichier" ?
Je vais aussi essayer la proposition de wapcamer.
 
[code ]
import java.io.RandomAccessFile;  
 
public class GenerateExperiences {  
 
Liste ml;  
static Sim svc;  
 
public GenerateExperiences() {  
this.ml = ml;  
this.svc = svc;  
createFiles();  
}  
 
public void createFiles() {  
 
RandomAccessFile f;  
 
int[] pop = { 10, 100 };  
float[] prob = { 0.01F, 0.02F };  
float[] level = { 0.1F, 0.2F };  
 
try {  
f=new RandomAccessFile("resultats.txt","rw" );  
f.seek(f.length());  
for (int j = 0; j < pop.length; j++) {  
 for (int k = 0; k < prob.length; k++) {  
  for (int l = 0; l < level.length; l++) {  
   svc = new Sim(pop[j],prob[k],level[l]);  
String s = "popInit"+popInit[j]+"\t"+"probaRep"+probaRep[k]+"\t"+"levelSalience"  
+levelSalience[l]+"\t"+"nbMess"+ml.getMessages().size()+"\t"+"nbMessInit"+ml.getNbMessage(0)  
+"\t"+"nbMessRep"+ml.getNbMessage(1)+"\n";  
f.setLength(f.length() + s.length());  
f.writeBytes (s);  
}  
}  
}  
f.close();  
}  
 
catch (Exception e) {  
System.err.println("error"+e.getMessage());  
}  
}  
 
public static void main(String[] args){  
GenerateExperiences genExpe = new GenerateExperiences();  
}  
}
[/code]
 

n°1287280
boulax
Inserer phrase hype en anglais
Posté le 19-01-2006 à 09:56:59  profilanswer
 

[:skylight]


---------------
Posté depuis des chiottes, sales. Me gusta.
n°1287300
emie31
Posté le 19-01-2006 à 10:07:44  profilanswer
 

Désolée, mon code n'est toujours pas entre balises.
Je refais un essai.
Sinon, j'ai essayé avec la méthode de wapcamer, et j'ai le même résultat.
Help !!!!
 

Code :
  1. import java.io.RandomAccessFile; 
  2.  
  3. public class GenerateExperiences { 
  4.  
  5. Liste ml; 
  6. static Sim svc; 
  7.  
  8. public GenerateExperiences() { 
  9. this.ml = ml; 
  10. this.svc = svc; 
  11. createFiles(); 
  12.  
  13. public void createFiles() { 
  14.  
  15. RandomAccessFile f; 
  16.  
  17. int[] pop = { 10, 100 }; 
  18. float[] prob = { 0.01F, 0.02F }; 
  19. float[] level = { 0.1F, 0.2F }; 
  20.  
  21. try
  22. f=new RandomAccessFile("resultats.txt","rw" ); 
  23. f.seek(f.length()); 
  24. for (int j = 0; j < pop.length; j++) { 
  25. for (int k = 0; k < prob.length; k++) { 
  26.   for (int l = 0; l < level.length; l++) { 
  27.    svc = new Sim(pop[j],prob[k],level[l]); 
  28. String s = "popInit"+popInit[j]+"\t"+"probaRep"+probaRep[k]+"\t"+"levelSalience" 
  29. +levelSalience[l]+"\t"+"nbMess"+ml.getMessages().size()+"\t"+"nbMessInit"+ml.getNbMessage(0) 
  30. +"\t"+"nbMessRep"+ml.getNbMessage(1)+"\n"; 
  31. f.setLength(f.length() + s.length()); 
  32. f.writeBytes (s); 
  33. f.close(); 
  34.  
  35. catch (Exception e) { 
  36. System.err.println("error"+e.getMessage()); 
  37.  
  38. public static void main(String[] args){ 
  39. GenerateExperiences genExpe = new GenerateExperiences(); 
  40. }

 

n°1287305
boulax
Inserer phrase hype en anglais
Posté le 19-01-2006 à 10:14:01  profilanswer
 

emie31 a écrit :

Désolée, mon code n'est toujours pas entre balises.
Je refais un essai.
Sinon, j'ai essayé avec la méthode de wapcamer, et j'ai le même résultat.
Help !!!!


 
Bah poste le code de cette méthode parce que ton RandomAccessFile là :??:
 
Et ton constructeur il sert à quoi au juste ?


---------------
Posté depuis des chiottes, sales. Me gusta.
n°1287308
trevor
laissez la vie vous étonner...
Posté le 19-01-2006 à 10:18:31  profilanswer
 

mhh, tjs rien à voir, mais je comprends pas trop ton constructeur...

Code :
  1. public GenerateExperiences() { 
  2. this.ml = ml; 
  3. this.svc = svc; 
  4. [...]
  5. }


tu initialises les attributs ml et svc, ca on est d'accord, mais avec quelles valeurs ? celles de ml et svc :D elles-même.
pas très logique, dans le pire des cas, il faut redéclarer ml et svc en local au niveau des paramètres d'entrée
dans le meilleur des cas, tu fais la même chose, mais tu prends la peine de donner un autre nom à ces variables locaux (c'est une très mauvaise habitude d'avoir une variable locale de même nom qu'un attribut)
 
autre chose: d'où proviennent les variables popInit[], probaRep[] et levelSalience[] ? elles ne sont déclarées nul part...


Message édité par trevor le 19-01-2006 à 10:23:26

---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1287328
trevor
laissez la vie vous étonner...
Posté le 19-01-2006 à 10:32:46  profilanswer
 

je viens de tester ton code tel quel (c/c) en virant les références inconnus (les attributs, les classes inconnues, les variables inconnues), ca compile, et ca me crée un fichier avec du contenu :

popInit probaRep levelSalience nbMess nbMessInit nbMessRep
[...]



---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
mood
Publicité
Posté le 19-01-2006 à 10:32:46  profilanswer
 

n°1287394
wapcamer
Posté le 19-01-2006 à 11:44:17  profilanswer
 

emie31 a écrit :


Sinon, j'ai essayé avec la méthode de wapcamer, et j'ai le même résultat.


 
Heu perso je l'utilise pour mes fichiers de log dans mon projet et ça marche bien.
Tu es bien sur du contenu à envoyer dans le fichier?
Comme dis R--, tu fais bien un flush de temps en temps ? (ça sert à forcer le vidage du tampon vers le fichier)


---------------
Voir les RAW sous Android: https://market.android.com/details? [...] .RawVision Blog Photo: http://photouch.me Applications mobiles: http://caketuzz.com Wapcam Project: http://wapcam.mobi
n°1287611
nicolasf
Posté le 19-01-2006 à 15:27:53  profilanswer
 

Petite question bete, tu as bien vérifié que tu as les droits d'écriture sur ton fichier de sortie ?

n°1287841
trevor
laissez la vie vous étonner...
Posté le 19-01-2006 à 19:06:05  profilanswer
 

je pense que oui, vu que le fichier est bien créé


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net

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

  Problèmes d'écriture dans un fichier : fichier vide

 

Sujets relatifs
Ecriture dans un fichier[Batch]Test repertoire vide
[css] imposer une police avec le fichier *.ttfC et pas C++, lire et écrire dans un fichier
[Résolu][C# & XML] Valider un fichier xml selon un schémaRenommer un fichier avec la date du jour
[RESOLU] Rechercer & remplacer dans un fichierCrée un fichier d'aide type .chm
Aide écriture php if 
Plus de sujets relatifs à : Problèmes d'écriture dans un fichier : fichier vide


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