[Java] Manipulation de fichiers

Tous les benchmarks, vos résultats, vos tests.
Vos programmes, vos conseils logiciel
Votre matos, vos problèmes
tonyo
Habitué
LAN : 13
Réactions :
Messages : 273
Inscription : octobre 10, 2002, 2:30 pm

[Java] Manipulation de fichiers

Message 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
Au royaume des aveugles les borgnes sont rois...
Avatar de l’utilisateur
Nicolazerty
l'élu
LAN : 41
Réactions :
Messages : 4116
Inscription : septembre 27, 2002, 2:59 pm

Message par Nicolazerty »

fichiers text ou binaire?

sinon il devrait y avoir des trucs ici:
http://java.developpez.com/cours/
tonyo
Habitué
LAN : 13
Réactions :
Messages : 273
Inscription : octobre 10, 2002, 2:30 pm

Message 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.
Au royaume des aveugles les borgnes sont rois...
Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
LAN : 126
Réactions :
Messages : 25460
Inscription : septembre 27, 2002, 9:41 pm

java for ever

Message 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...
Avatar de l’utilisateur
Nicolazerty
l'élu
LAN : 41
Réactions :
Messages : 4116
Inscription : septembre 27, 2002, 2:59 pm

Message 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");
    }
tonyo
Habitué
LAN : 13
Réactions :
Messages : 273
Inscription : octobre 10, 2002, 2:30 pm

Message par tonyo »

Ok merci, j'vais analyser ça :D !
Au royaume des aveugles les borgnes sont rois...
Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
LAN : 126
Réactions :
Messages : 25460
Inscription : septembre 27, 2002, 9:41 pm

du fichier texte

Message 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...
tonyo
Habitué
LAN : 13
Réactions :
Messages : 273
Inscription : octobre 10, 2002, 2:30 pm

Message par tonyo »

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