Page 1 sur 1

[Java] Manipulation de fichiers

Publié : octobre 7, 2003, 5:26 pm
par tonyo
Est-ce que y aurait des Java-man qui connaitraient des bons sites qui auraient des bons tutoriaux sur la manipulation de fichiers ?
Edit by Nico: j'ai déplace ton post pour plus de klarte

Publié : octobre 7, 2003, 5:47 pm
par Nicolazerty
fichiers text ou binaire?

sinon il devrait y avoir des trucs ici:
http://java.developpez.com/cours/

Publié : octobre 9, 2003, 1:17 pm
par tonyo
Les 2 en fait. Je suis déjà allé sur ton site et j'ai pris pas mal de doc, mais ça m'aurait plus aidé un tuto spécial sur la manip de fichier.

J'crois (d'après ce que j'ai pu voir) qu'il existe plusieurs classes qui proposent des methodes différentes, donc c'était pour choisir la plus "saine" et plus utilisée.

java for ever

Publié : octobre 9, 2003, 1:28 pm
par Aurelienazerty
J'ai de bon truc pour les fichiers texte... Le problème c'est que je n'ai pas ça de tête, et surtout, que ce n'est pas un cours, mais un bout d'un de mes progs... Mais je sais que c'était un truc avec des bufferreader et que c'était hyper symple à utiliser...

Publié : octobre 10, 2003, 7:16 pm
par Nicolazerty
voila un peu de code extrait de chez moi bon c'est assez basique mais ca t'aidera peut etre...

Code : Tout sélectionner

//lecture
    User temp=null;
    try
    {
        ObjectInputStream InputFile;
        InputFile=new ObjectInputStream(new FileInputStream(nameFile));
        temp=((User) InputFile.readObject());
        InputFile.close();

    }

    catch(Exception ex)
    {
        System.out.println("An error has occured while working on "+nameFile);
    }
    return temp;
///////////////////////////////////////////////////////////////////////////
//ecriture
String name=this.login;
    try
    {
        ObjectOutputStream OutputFile;
        OutputFile=new ObjectOutputStream(new FileOutputStream(name+".user"));
        OutputFile.writeObject(this);
        OutputFile.close();
        System.out.println("User saved");
    }
    catch(Exception ex)
    {
        System.out.println("An error has occured while working on "+name+".user");
    }

Publié : octobre 11, 2003, 10:55 am
par tonyo
Ok merci, j'vais analyser ça :D !

du fichier texte

Publié : octobre 11, 2003, 2:12 pm
par Aurelienazerty
tiens un peu de lecture de fichier texte:

La classe

Code : Tout sélectionner

package bdd;

import java.util.*;
import java.io.*;

/** 
 * Classe ConfReader
 * <br>Création : juin 2002
 * <br>Permet la lecture du fichier de configuration de la Bdd
 * @author W. Aurélien
 * @version 1.0
 */
 
public class ConfReader{
	
	private String fichierConfig = "configuration.txt";
	private String tabClef[] = {"server","user","db","pass"};
	private String value[] = {"server","user","db","pass"};
	
	private int chercher(String s){
		int i;
		for (i=0;i<tabClef.length;i++){
			if (tabClef[i].equals(s)) return i;
		}
		System.out.println("Pb");
		return -1;
	}
	
	/** Accesseur
		@return le login de l'utilisateur*/
	public String getUser(){
		return value[chercher("user")];
	}
	
	/** Accesseur
		@return le serveur*/
	public String getServer(){
		return value[chercher("server")];
	}
	
	/** Accesseur
		@return le nom de la bdd*/
	public String getDb(){
		return value[chercher("db")];
	}
	
	/** Accesseur
		@return le mot de pass de l'utilisateur*/	
	public String getPass(){
		String pass = value[chercher("pass")];
		if ( pass.equals("no") ) {
			return null;
		} else {
			return pass;
		}
	}
	
	/** Lis le fichier de configuration*/
	public ConfReader(){
		try{
			FileReader myFileReader = new FileReader(fichierConfig);
      		StreamTokenizer myStream = new StreamTokenizer(myFileReader);
      		//System.out.println("Chargement du fichier de configuration "+fichierConfig);
      		myStream.nextToken();
      		while (myStream.ttype != StreamTokenizer.TT_EOF) {
      			String clef, valeur;
      			
        		myStream.pushBack();
        		myStream.nextToken();
        		clef = myStream.sval;
        		myStream.nextToken();
        		if (myStream.ttype == StreamTokenizer.TT_EOF){
        			System.out.println("Synstax error line " + myStream.lineno() + ":");
        			System.out.println("La clef "+clef+" n'a pas de valeur");
        			System.exit(0);
        		}
        		myStream.pushBack();
        		myStream.nextToken();
        		valeur = myStream.sval;
        		int i;
        		if ((i = chercher(clef)) == -1){
		        	System.out.println("Syntax error line " + myStream.lineno() + " in "+fichierConfig+":");
		        	System.out.println(clef + " N'est pas une clef de configuration valide");
		        	System.out.println("Seul 'server' 'user' 'db' 'pass' sont des clefs autorisés");
		        	System.exit(0);
	   			} else {
	   				value[i] = valeur;
	   			}
        		myStream.nextToken();
        	}
        	myFileReader.close();

		} catch (IOException e) {
			System.err.println(e);
			System.exit(0);
		}
		//System.out.println("Configuration Chargée");
	}
	
	/** Méthode pour tester la classe*/
	public static void main(String [] args) {
		
		ConfReader maConf = new ConfReader();
		System.out.println("Configuration Chargée:");
		System.out.println("Serveur: "+maConf.getServer());
		System.out.println("Bdd: "+maConf.getDb());
		System.out.println("User: "+maConf.getUser());
		System.out.println("Pass: "+maConf.getPass());
		
	}
	
}
Le fichier de configuration

Code : Tout sélectionner

//Fichier de configuration pour le projet Java

"server"	"localhost" 	//Serveur Mysql
"user"		"root"		//Utilisateur de la base
"pass"		"no" 		//Mot de pass pour l'utilisateur 'no' s'il n'y en a pas
"db"		"projet"	//Base de donnée
Tu remarques que les commentaires sont ignorés par Tokeniser, j'ai aussi des exemple de sérialisation d'objet dans des fichiers binaires...
L'ensemble du projet (Java+bdd) est à l'adresse suivante: http://www-ufrima.imag.fr/TEST/porjetJava.zip Pour la sérialisation, c'est un autre projet java...

Publié : octobre 12, 2003, 11:01 am
par tonyo
Ok, thanks je vais essayer de comprendre 8)