#1 Le 18/04/2007, à 17:13
- cassandra
[Java]Ecraser un fichier s'il existe
Bonjour,
j'ai une liste contenant des valeurs que je souhaiterais sauvegarder dans un fichier dont le nom sera donné en parametre de la méthode :
public void save(String name){
//Mes valeurs sont stockées dans une List<Integer> tabValues;
//Quelqu'un pourrait-il m'indiquer comment m'y prendre
}
Cette méthode écrasera les données précédentes
Merci
Hors ligne
#2 Le 18/04/2007, à 17:41
- obiwankennedy
Re : [Java]Ecraser un fichier s'il existe
DataOutputStream bw = new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream(name)));
for(int i=0; i < tabValues.size();i++)
bw.write(tabvalues.elementat(i)+"\n");
bw.close();
Un truc comme ça.
Dernière modification par obiwankennedy (Le 18/04/2007, à 17:42)
Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam
Hors ligne
#3 Le 18/04/2007, à 19:33
- pcamut
Re : [Java]Ecraser un fichier s'il existe
sinon tu peux regarder la class FileWriter
Ubuntu 7.04 - Debian Lenny Amd64
Core2Duo E6320@2.8GHz - 2 Go Ram - 7300Gt PCIe - Asus P5B-e plus - 160 Go et 500 Go - Dual Screen
Hors ligne
#4 Le 18/04/2007, à 20:39
- Athropos
Re : [Java]Ecraser un fichier s'il existe
DataOutputStream bw = new DataOutputStream( new BufferedOutputStream( new FileOutputStream(name))); for(int i=0; i < tabValues.size();i++) bw.write(tabvalues.elementat(i)+"\n"); bw.close();
Un truc comme ça.
Quitte à utiliser un DataOutputStream, autant utiliser les méthodes prévues pour chaque type de données (writeInt() dans le cas présent).
http://java.sun.com/j2se/1.5.0/docs/api/java/io/DataOutputStream.html
A barcode never lies
Hors ligne
#5 Le 18/04/2007, à 21:34
- pcamut
Re : [Java]Ecraser un fichier s'il existe
PrinterWriter writer = new PrintWriter( new FileWriter("monFichier" ) );
for(int i=0; i < tabValues.size();i++)
writer.println( tabvalues.elementat(i) );
voila.....
si tu veux tester avant l'existance de ton fichier :
File f = new File("monfichier");
if( f.exists() )
System.out.println("Attention le fichier existe deja" );
Ubuntu 7.04 - Debian Lenny Amd64
Core2Duo E6320@2.8GHz - 2 Go Ram - 7300Gt PCIe - Asus P5B-e plus - 160 Go et 500 Go - Dual Screen
Hors ligne
#6 Le 18/04/2007, à 23:13
- cassandra
Re : [Java]Ecraser un fichier s'il existe
PrinterWriter writer = new PrintWriter( new FileWriter("monFichier" ) ); for(int i=0; i < tabValues.size();i++) writer.println( tabvalues.elementat(i) );
voila.....
si tu veux tester avant l'existance de ton fichier :
File f = new File("monfichier"); if( f.exists() ) System.out.println("Attention le fichier existe deja" );
Salut,
j'ai fait comme tu as indiqué.
Le fichier s'est crée mais il est vide
Voici la class de Test que j'ai écrit :
import java.util.*;
import java.io.*;
public class Test{
private List<String> liste;
public Test(){
liste = new ArrayList<String>();
rempli();
}
void rempli(){
liste.add("un");
liste.add("deux");
}
void affiche(){
for(int i=0; i<liste.size(); i++)
System.out.print(liste.get(i) + " ");
System.out.println("");
}
void save(String name){
try{
PrintWriter writer = new PrintWriter(new FileWriter(name));
for(int i=0; i < liste.size();i++)
writer.println(liste.get(i));
}catch(IOException e){
e.printStackTrace();
}
}
public static void main(String [] args){
Test test = new Test();
test.affiche();
test.save("test.txt");
}
}
Hors ligne
#7 Le 19/04/2007, à 06:49
- Athropos
Re : [Java]Ecraser un fichier s'il existe
writer.close();
A barcode never lies
Hors ligne
#8 Le 19/04/2007, à 07:02
- pcamut
Re : [Java]Ecraser un fichier s'il existe
writer.close();
merci c'est vrai que je suis distrait parfois
donc la version corrigée
PrinterWriter writer = new PrintWriter( new FileWriter("monFichier" ) );
for(int i=0; i < tabValues.size();i++)
writer.println( tabvalues.elementat(i) );
writer.close();
Dernière modification par pcamut (Le 19/04/2007, à 07:04)
Ubuntu 7.04 - Debian Lenny Amd64
Core2Duo E6320@2.8GHz - 2 Go Ram - 7300Gt PCIe - Asus P5B-e plus - 160 Go et 500 Go - Dual Screen
Hors ligne