[Java] Manipulation de fichiers

Tous les benchmarks, vos résultats, vos tests.
Vos programmes, vos conseils logiciel
Votre matos, vos problèmes
Répondre
tonyo
Habitué
Messages : 272
Enregistré le : octobre 10th, 2002, 2:30 pm

[Java] Manipulation de fichiers

Message par tonyo » octobre 7th, 2003, 5:26 pm

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
Au royaume des aveugles les borgnes sont rois...

Avatar du membre
Nicolazerty
l'élu
Messages : 3977
Enregistré le : septembre 27th, 2002, 2:59 pm

Message par Nicolazerty » octobre 7th, 2003, 5:47 pm

fichiers text ou binaire?

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

tonyo
Habitué
Messages : 272
Enregistré le : octobre 10th, 2002, 2:30 pm

Message par tonyo » octobre 9th, 2003, 1:17 pm

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.
Au royaume des aveugles les borgnes sont rois...

Avatar du membre
Aurelienazerty
Webmaster / Président
Messages : 18586
Enregistré le : septembre 27th, 2002, 9:41 pm

java for ever

Message par Aurelienazerty » octobre 9th, 2003, 1:28 pm

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...
Aurelienazerty

Image

Avatar du membre
Nicolazerty
l'élu
Messages : 3977
Enregistré le : septembre 27th, 2002, 2:59 pm

Message par Nicolazerty » octobre 10th, 2003, 7:16 pm

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");
    }

tonyo
Habitué
Messages : 272
Enregistré le : octobre 10th, 2002, 2:30 pm

Message par tonyo » octobre 11th, 2003, 10:55 am

Ok merci, j'vais analyser ça :D !
Au royaume des aveugles les borgnes sont rois...

Avatar du membre
Aurelienazerty
Webmaster / Président
Messages : 18586
Enregistré le : septembre 27th, 2002, 9:41 pm

du fichier texte

Message par Aurelienazerty » octobre 11th, 2003, 2:12 pm

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...
Aurelienazerty

Image

tonyo
Habitué
Messages : 272
Enregistré le : octobre 10th, 2002, 2:30 pm

Message par tonyo » octobre 12th, 2003, 11:01 am

Ok, thanks je vais essayer de comprendre 8)
Au royaume des aveugles les borgnes sont rois...

Répondre