Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/04/2007, à 18: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, à 18: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, à 18:42)


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#3 Le 18/04/2007, à 20: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, à 21:39

Athropos

Re : [Java]Ecraser un fichier s'il existe

obiwankennedy a écrit :
               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, à 22: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 19/04/2007, à 00:13

cassandra

Re : [Java]Ecraser un fichier s'il existe

pcamut a écrit :
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, à 07:49

Athropos

Re : [Java]Ecraser un fichier s'il existe

writer.close();

A barcode never lies

Hors ligne

#8 Le 19/04/2007, à 08:02

pcamut

Re : [Java]Ecraser un fichier s'il existe

Athropos a écrit :
writer.close();

merci wink c'est vrai que je suis distrait parfois big_smile


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, à 08: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